Skip to content

Commit 06e399a

Browse files
committed
update
1 parent b58d911 commit 06e399a

File tree

5 files changed

+394
-52
lines changed

5 files changed

+394
-52
lines changed

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
},
4141
"devDependencies": {
4242
"@ant-design/colors": "^3.2.1",
43+
"@gfx/zopfli": "^1.0.15",
4344
"@vue/cli-plugin-babel": "^4.0.4",
4445
"@vue/cli-plugin-eslint": "^4.0.4",
4546
"@vue/cli-plugin-router": "^4.0.4",
@@ -51,6 +52,8 @@
5152
"babel-eslint": "^10.0.1",
5253
"babel-plugin-import": "^1.12.2",
5354
"babel-plugin-transform-remove-console": "^6.9.4",
55+
"brotli-webpack-plugin": "^1.1.0",
56+
"compression-webpack-plugin": "^4.0.0",
5457
"eslint": "^5.16.0",
5558
"eslint-plugin-html": "^5.0.0",
5659
"eslint-plugin-vue": "^5.2.3",

src/config/componentConfigs.js

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,43 @@ import { BasicLayout, UserLayout, RouteView, BlankLayout, PageView } from '@/lay
22

33
export const Components = {
44
// 基础页面 layout 必须引入
5-
'Layout': {
5+
Layout: {
66
BasicLayout,
77
UserLayout,
88
RouteView,
99
BlankLayout,
1010
PageView
1111
},
1212
// 普通页面
13-
'Page': {
14-
'Analysis': () => import('@/views/dashboard/Analysis'),
15-
'Workplace': () => import('@/views/dashboard/Workplace'),
16-
'Permission': () => import('@/views/system/permission/Index'),
17-
'Role': () => import('@/views/system/role/Index'),
18-
'Account': () => import('@/views/system/user/Index'),
19-
'AccountForm': () => import('@/views/system/user/components/User'),
20-
'Dept': () => import('@/views/system/dept/Index'),
21-
'LogAccount': () => import('@/views/log/Index'),
22-
'LogDb': () => import('@/views/log/Db'),
23-
'WangEditor': () => import('@/views/editor/WangEditor'),
24-
'Quill': () => import('@/views/editor/Quill'),
25-
'Post': () => import('@/views/system/post/Index'),
26-
'Center': () => import('@/views/account/center/Index'),
27-
'Settings': () => import('@/views/account/settings/Index'),
28-
'BaseSettings': () => import('@/views/account/settings/BaseSetting'),
29-
'SecuritySettings': () => import('@/views/account/settings/Security'),
30-
'CustomSettings': () => import('@/views/account/settings/Custom'),
31-
'BindingSettings': () => import('@/views/account/settings/Binding'),
32-
'NotificationSettings': () => import('@/views/account/settings/Notification'),
13+
Page: {
14+
Analysis: () => import(/* webpackChunkName: "Analysis" */ '@/views/dashboard/Analysis'),
15+
Workplace: () => import(/* webpackChunkName: "Workplace" */ '@/views/dashboard/Workplace'),
16+
Permission: () => import(/* webpackChunkName: "Permission" */ '@/views/system/permission/Index'),
17+
Role: () => import(/* webpackChunkName: "Role" */ '@/views/system/role/Index'),
18+
Account: () => import(/* webpackChunkName: "Account" */ '@/views/system/user/Index'),
19+
AccountForm: () => import(/* webpackChunkName: "AccountForm" */ '@/views/system/user/components/User'),
20+
Dept: () => import(/* webpackChunkName: "Dept" */ '@/views/system/dept/Index'),
21+
LogAccount: () => import(/* webpackChunkName: "LogAccount" */ '@/views/log/Index'),
22+
LogDb: () => import(/* webpackChunkName: "LogDb" */ '@/views/log/Db'),
23+
WangEditor: () => import(/* webpackChunkName: "WangEditor" */ '@/views/editor/WangEditor'),
24+
Quill: () => import(/* webpackChunkName: "Quill" */ '@/views/editor/Quill'),
25+
Post: () => import(/* webpackChunkName: "Post" */ '@/views/system/post/Index'),
26+
Center: () => import(/* webpackChunkName: "Center" */ '@/views/account/center/Index'),
27+
Settings: () => import(/* webpackChunkName: "Settings" */ '@/views/account/settings/Index'),
28+
BaseSettings: () => import(/* webpackChunkName: "BaseSettings" */ '@/views/account/settings/BaseSetting'),
29+
SecuritySettings: () => import(/* webpackChunkName: "SecuritySettings" */ '@/views/account/settings/Security'),
30+
CustomSettings: () => import(/* webpackChunkName: "CustomSettings" */ '@/views/account/settings/Custom'),
31+
BindingSettings: () => import(/* webpackChunkName: "BindingSettings" */ '@/views/account/settings/Binding'),
32+
NotificationSettings: () => import(/* webpackChunkName: "NotificationSettings" */ '@/views/account/settings/Notification'),
3333

3434
// 权限测试
35-
'TestNotAjax': () => import('@/views/test/NotAjax'),
36-
'Form': () => import('@/views/test/Form'),
37-
'CreateForm': () => import('@/views/test/components/CreateForm'),
35+
TestNotAjax: () => import(/* webpackChunkName: "TestNotAjax" */ '@/views/test/NotAjax'),
36+
Form: () => import(/* webpackChunkName: "Form" */ '@/views/test/Form'),
37+
CreateForm: () => import(/* webpackChunkName: "CreateForm" */ '@/views/test/components/CreateForm'),
3838

39-
'Article': () => import('@/views/article/Index'),
40-
'ArticleForm': () => import('@/views/article/components/Article'),
41-
'ArticleCategory': () => import('@/views/article/Category'),
42-
'ArticleCategoryForm': () => import('@/views/article/components/Category')
39+
Article: () => import(/* webpackChunkName: "Article" */ '@/views/article/Index'),
40+
ArticleForm: () => import(/* webpackChunkName: "ArticleForm" */ '@/views/article/components/Article'),
41+
ArticleCategory: () => import(/* webpackChunkName: "ArticleCategory" */ '@/views/article/Category'),
42+
ArticleCategoryForm: () => import(/* webpackChunkName: "ArticleCategoryForm" */ '@/views/article/components/Category')
4343
}
4444
}

src/core/antd/icons.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,9 @@ export {
9191
export {
9292
default as CaretDownFill
9393
} from '@ant-design/icons/lib/fill/CaretDownFill'
94+
export {
95+
default as SmileOutline
96+
} from '@ant-design/icons/lib/outline/SmileOutline'
97+
export {
98+
default as PlusOutline
99+
} from '@ant-design/icons/lib/outline/PlusOutline'

vue.config.js

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
const path = require('path')
22
const webpack = require('webpack')
3+
const CompressionWebpackPlugin = require("compression-webpack-plugin")
4+
const zopfli = require("@gfx/zopfli")
5+
const BrotliPlugin = require("brotli-webpack-plugin")
36
const createThemeColorReplacerPlugin = require('./config/plugin.config')
4-
57
function resolve (dir) {
68
return path.join(__dirname, dir)
79
}
810

9-
const isProd = process.env.NODE_ENV === 'production'
11+
const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
1012

1113
const assetsCDN = {
1214
// webpack build externals
@@ -42,15 +44,30 @@ const vueConfig = {
4244
// webpack plugins
4345
plugins: [
4446
// Ignore all locale files of moment.js
45-
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/)
47+
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
48+
// Gzip
49+
new CompressionWebpackPlugin({
50+
algorithm(input, compressionOptions, callback) {
51+
return zopfli.gzip(input, compressionOptions, callback);
52+
},
53+
compressionOptions: {
54+
numiterations: 15
55+
},
56+
minRatio: 0.99,
57+
test: /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i
58+
}),
59+
new BrotliPlugin({
60+
test: /\.(js|css|json|txt|html|ico|svg)(\?.*)?$/i,
61+
minRatio: 0.99
62+
})
4663
],
4764
resolve: {
4865
alias: {
49-
// '@ant-design/icons/lib/dist$': resolve('./src/core/antd/icons.js')
66+
'@ant-design/icons/lib/dist$': resolve('./src/core/antd/icons.js')
5067
}
5168
},
5269
// if prod, add externals
53-
externals: isProd ? assetsCDN.externals : {}
70+
externals: IS_PROD ? assetsCDN.externals : {}
5471
},
5572

5673
chainWebpack: (config) => {
@@ -75,18 +92,16 @@ const vueConfig = {
7592

7693
// if prod is on
7794
// assets require on cdn
78-
if (isProd) {
95+
if (IS_PROD) {
7996
config.plugin('html').tap(args => {
8097
args[0].cdn = assetsCDN
8198
return args
8299
})
83100

84-
if (process.env.npm_config_report) {
85-
config
86-
.plugin('webpack-bundle-analyzer')
87-
.use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
88-
.end()
89-
}
101+
config
102+
.plugin('webpack-bundle-analyzer')
103+
.use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
104+
.end()
90105
}
91106
},
92107

0 commit comments

Comments
 (0)