79 lines
2.4 KiB
JavaScript
79 lines
2.4 KiB
JavaScript
const path = require("path");
|
||
const CompressionWebpackPlugin = require("compression-webpack-plugin");
|
||
const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
|
||
|
||
const resolve = dir => {
|
||
return path.join(__dirname, dir);
|
||
};
|
||
|
||
module.exports = {
|
||
outputDir: "../public",
|
||
indexPath:
|
||
process.env.NODE_ENV === "production"
|
||
? "../resources/views/index.blade.php"
|
||
: "index.html",
|
||
lintOnSave: true,
|
||
productionSourceMap: false,
|
||
configureWebpack: {
|
||
devtool: "source-map"
|
||
},
|
||
chainWebpack: config => {
|
||
config.resolve.alias
|
||
.set("node_modules", resolve("node_modules"))
|
||
.set("@", resolve("src")) // key,value自行定义,比如.set('@@', resolve('src/components'))
|
||
.set("src", resolve("src"))
|
||
.set("views", resolve("src/views"))
|
||
.set("api", resolve("src/api"))
|
||
.set("components", resolve("src/components"))
|
||
.set("mixins", resolve("src/mixins"))
|
||
.set("directives", resolve("src/directives"))
|
||
.set("assets", resolve("src/assets"))
|
||
.set("utils", resolve("src/utils"))
|
||
.set("css", resolve("src/assets/css"))
|
||
.set("images", resolve("src/assets/images"))
|
||
.set("lib", resolve("src/assets/lib"))
|
||
.set("service", resolve("src/service"))
|
||
.set("validate", resolve("src/service/validate"));
|
||
|
||
config.module
|
||
.rule("vue")
|
||
.use("iview-loader")
|
||
.loader("iview-loader")
|
||
.tap(options => {
|
||
options = {
|
||
prefix: true
|
||
};
|
||
return options;
|
||
});
|
||
|
||
if (process.env.NODE_ENV === "production") {
|
||
return {
|
||
plugins: [
|
||
new CompressionWebpackPlugin({
|
||
test: /\.js$|\.html$|\.css$/i, // 匹配文件名
|
||
threshold: 10240, // 对超过10k的数据压缩
|
||
deleteOriginalAssets: false // 不删除源文件
|
||
}),
|
||
new UglifyJsPlugin({
|
||
uglifyOptions: {
|
||
compress: {
|
||
warnings: false,
|
||
drop_console: true,
|
||
drop_debugger: false,
|
||
pure_funcs: ["console.log"] // 移除console
|
||
}
|
||
},
|
||
sourceMap: false,
|
||
parallel: true
|
||
})
|
||
]
|
||
};
|
||
}
|
||
}
|
||
|
||
// 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串
|
||
// devServer: {
|
||
// proxy: 'localhost:3000'
|
||
// }
|
||
};
|