1
const path = require ( 'path' )
谭毅彬
authored
about a year ago
2
const webpack = require ( 'webpack' )
3
const CompressionPlugin = require ( 'compression-webpack-plugin' )
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function resolve ( dir ) {
return path . join ( __dirname , dir )
}
// vue.config.js
module . exports = {
/*
Vue - cli3 :
Crashed when using Webpack ` import () ` # 2463
https : //github.com/vuejs/vue-cli/issues/2463
* /
/ / 如果你不需要生产环境的 source map ,可以将其设置为 false 以加速生产环境构建。
productionSourceMap : false ,
// 多入口配置
// pages: {
// index: {
// entry: 'src/main.js',
// template: 'public/index.html',
// filename: 'index.html',
// }
// },
26
publicPath : '/wms/' ,
27
outputDir : process . env . outputDir ,
28
configureWebpack : config => {
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 不是开发环境时生效
if ( process . env . NODE_ENV !== 'development' ) {
config [ 'performance' ] = {
// 警告 webpack 的性能提示
hints : 'warning' ,
// 入口起点的最大体积
maxEntrypointSize : 50000000 ,
// 生成文件的最大体积
maxAssetSize : 30000000 ,
// 只给出 js 文件的性能提示
assetFilter : function ( assetFilename ) {
return assetFilename . endsWith ( '.js' )
}
}
}
44
// 生产环境取消 console.log
45
46
47
48
49
if ( process . env . NODE_ENV === 'production' ) {
config . optimization . minimizer [ 0 ]. options . terserOptions . compress . drop_console = true
}
},
chainWebpack : ( config ) => {
谭毅彬
authored
about a year ago
50
config . plugins . delete ( 'prefetch' )
51
52
53
54
55
56
57
config . resolve . alias
. set ( '@$' , resolve ( 'src' ))
. set ( '@api' , resolve ( 'src/api' ))
. set ( '@assets' , resolve ( 'src/assets' ))
. set ( '@comp' , resolve ( 'src/components' ))
. set ( '@views' , resolve ( 'src/views' ))
58
// 生产环境,开启js\css压缩
59
if ( process . env . NODE_ENV === 'production' ) {
60
61
62
63
64
config . plugin ( 'compressionPlugin' ). use ( new CompressionPlugin ({
test : / \.( js|css|less ) $/ , // 匹配文件名
threshold : 10240 , // 对超过10k的数据压缩
deleteOriginalAssets : false // 不删除源文件
}))
谭毅彬
authored
about a year ago
65
66
67
68
config . plugin ( 'chunkPlugin' ). use ( webpack . optimize . LimitChunkCountPlugin , [{
maxChunks : 5 ,
minChunkSize : 10000
}])
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
}
// 配置 webpack 识别 markdown 为普通的文件
config . module
. rule ( 'markdown' )
. test ( / \. md$/ )
. use ()
. loader ( 'file-loader' )
. end ()
// 编译vxe-table包里的es6代码,解决IE11兼容问题
config . module
. rule ( 'vxe' )
. test ( / \. js$/ )
. include
84
85
86
. add ( resolve ( 'node_modules/vxe-table' ))
. add ( resolve ( 'node_modules/vxe-table-plugin-antd' ))
. end ()
87
88
89
90
91
92
93
94
95
96
97
98
. use ()
. loader ( 'babel-loader' )
. end ()
},
css : {
loaderOptions : {
less : {
modifyVars : {
/* less 变量覆盖,用于自定义 ant design 主题 */
'primary-color' : '#1890FF' ,
'link-color' : '#1890FF' ,
99
'border-radius-base' : '4px'
100
},
101
javascriptEnabled : true
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
}
}
},
devServer : {
port : 3000 ,
// hot: true,
// disableHostCheck: true,
// overlay: {
// warnings: false,
// errors: true,
// },
// headers: {
// 'Access-Control-Allow-Origin': '*',
// },
proxy : {
118
119
120
121
122
123
124
125
/* '/ api ': {
target : 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro' , // mock API接口系统
ws : false ,
changeOrigin : true ,
pathRewrite : {
'/jeecg-boot' : '' // 默认所有请求都加了jeecg-boot前缀,需要去掉
}
}, * /
126
/ * 注意: jeecgboot 前端做了改造,此处不需要配置跨域和后台接口(只需要改 . env 相关配置文件即可)
127
issues / 3462 很多人此处做了配置,导致刷新前端 404 问题,请一定注意 * /
128
129
130
131
'/ jeecg - boot ': {
target : 'http://localhost:8080' ,
ws : false ,
changeOrigin : true
132
}
133
134
135
}
},
lintOnSave : undefined
136
}