const path = require('path'); const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); const isProduction = process.env.NODE_ENV === 'production'; // const BASE_URL = process.env.NODE_ENV === 'production' ? '/screen' : '/'; module.exports = { chainWebpack: (config) => { // 移除 prefetch 插件 config.plugins.delete('prefetch'); }, assetsDir: 'assets', productionSourceMap: !isProduction, // publicPath: BASE_URL, lintOnSave: 'error', // 避免静态资源请求时附带Cookie,最终目的是减少资源请求包的大小 crossorigin: 'anonymous', // 保证资源的安全性,避免劫持后的安全问题 integrity: true, publicPath: process.env.BASE_URL, // 公共资源访问路径 indexPath: 'index.html', // 相对于打包路径index.html的路径 // outputDir: process.env.outputDir || 'main', // 'dist', 生产环境构建文件的目录 devServer: { // 启动且第一次构建完成时,自动用我们的系统的默认浏览器去打开要开发的网页 open: true, disableHostCheck: true, proxy: { '/phpapi': { target: process.env.VUE_APP_PHP_URL, changeOrigin: true, pathRewrite: { '^/phpapi': '' }, // 另外的细节 // 浏览器对Port的处理存在差异,这是同源策略中的灰色地带,即:80端口的Cookie在Chrome等其他浏览器中会发送到:8080,而Firefox不会)。 // cookieDomainRewrite: '', // secure: false, }, }, }, configureWebpack: { resolve: { mainFields: ['browser', 'module', 'main'], alias: { '@': path.resolve(__dirname, 'src'), }, }, optimization: { minimizer: [ new UglifyJsPlugin({ uglifyOptions: { warnings: false, compress: { drop_console: true, // console drop_debugger: true, pure_funcs: ['console.log'], // 移除console }, output: { beautify: false, // 最紧凑的输出,不保留空格和制表符 comments: false, // 删除所有注释 }, }, sourceMap: false, parallel: true, }), ], }, }, };