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' // } };