1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
const path = require("path");
const LodashModuleReplacementPlugin = require("lodash-webpack-plugin");
const CompressionPlugin = require("compression-webpack-plugin"); // 代码压缩
const defaultSettings = require("./src/settings.js");
module.exports = {
publicPath: "/bims",
productionSourceMap: false,
pluginOptions: {
"style-resources-loader": {
preProcessor: "less",
patterns: [path.resolve(__dirname, "src/assets/style/common.less")],
},
},
css: {
loaderOptions: {
less: {
javascriptEnabled: true,
},
}
},
chainWebpack: (config) => {
if (process.env.NODE_ENV === "production") {
// lodash 按需加载
config.plugin("loadshReplace").use(new LodashModuleReplacementPlugin());
}
},
configureWebpack: (config) => {
config.name = defaultSettings.title;
const plugins = [];
if (process.env.NODE_ENV === "production") {
plugins.push(
new CompressionPlugin({
filename: "[path][base].gz",
algorithm: "gzip",
test: new RegExp(".(" + ["js", "css", "json"].join("|") + ")$"),
threshold: 8192,
include: /\/src/,
exclude: /node_modules/,
minRatio: 0.8,
deleteOriginalAssets: false, // 此处源文件保留吧,以防不测
})
);
}
config.plugins = [...config.plugins, ...plugins];
},
devServer: {
disableHostCheck: true,
useLocalIp: true,
port: 8888,
hot: true,
proxy: {
"^/api_bims": {
target: "http://47.99.75.3:8070",
pathRewrite: {
"^/api_bims": "/",
},
changeOrigin: true,
secure: false,
},
},
},
};