const path = require('path') const CompressionPlugin = require('compression-webpack-plugin') const TerserPlugin = require("terser-webpack-plugin"); const devServerPort = 3000 const devServerHost = process.env.HOST || '0.0.0.0' const devServerPublic = process.env.VUE_APP_DEV_PUBLIC || `localhost:${devServerPort}` const devServerSockHost = process.env.VUE_APP_DEV_SOCK_HOST || devServerPublic.split(':')[0] const devServerSockPort = Number(process.env.VUE_APP_DEV_SOCK_PORT || devServerPublic.split(':')[1] || devServerPort) function resolve(dir) { return path.join(__dirname, dir) } // var appData = require('./json/video.json')//加载本地数据文件 // 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', chunks: ['chunk-vendors', 'chunk-common', 'index'] } }, */ configureWebpack: () => { if (process.env.NODE_ENV === 'production') { return { plugins: [new CompressionPlugin({ test: /\.js$|\.html$|\.css/, threshold: 10240, deleteOriginalAssets: false }), new TerserPlugin({ cache: true,//降版本后添加 sourceMap: false,//降版本后添加 // 多进程 parallel: true,//降版本后添加 terserOptions: { ecma: undefined, warnings: false, parse: {}, compress: { drop_console: true, drop_debugger: false, pure_funcs: ['console.log'], // 移除console }, }, }),] } } }, chainWebpack: (config) => { config.resolve.alias .set('@$', resolve('src')) .set('@base', resolve('src/base')) .set('@api', resolve('src/api')) .set('@assets', resolve('src/assets')) .set('@comp', resolve('src/components')) .set('@views', resolve('src/views')) .set('@layout', resolve('src/layout')) .set('@static', resolve('src/static')); config.plugins.delete('prefetch') }, pluginOptions: { 'style-resources-loader': { preProcessor: 'less', patterns: [ resolve('src/styles/var.less'), resolve('src/styles/mixin.less') ] } }, css: { loaderOptions: { less: { modifyVars: { /* less 变量覆盖,用于自定义 ant design 主题 */ /* 'primary-color': '#F5222D', 'link-color': '#F5222D', 'border-radius-base': '4px', */ }, javascriptEnabled: true, } } }, devServer: { hot: true, // inline: true, host: devServerHost, port: devServerPort, public: devServerPublic, sockHost: devServerSockHost, sockPort: devServerSockPort, disableHostCheck: true, open: true, proxy: { '/jeecg-boot/reportModule': { target: 'http://127.0.0.1:7006', ws: false, changeOrigin: true, pathRewrite: { '^/jeecg-boot/reportModule': '/reportModule' } }, '/jeecg-boot/material': { target: 'http://127.0.0.1:7006', ws: false, changeOrigin: true, pathRewrite: { '^/jeecg-boot/material': '/material' } }, '/jeecg-boot': { target: 'http://127.0.0.1:7001', //请求本地 需要jeecg-boot后台项目 蒙蒙 // target: 'http://api.bjhcstszkj.cn', //请求本地 需要jeecg-boot后台项目 ws: false, // changeOrigin: true, // pathRewrite: { // '/jeecg-boot': '' //默认所有请求都加了jeecg-boot前缀,需要去掉 // } }, '/material': { target: 'http://127.0.0.1:7006', ws: false, changeOrigin: true }, }, // before(app) { // app.get('/seller', (req, res) => { // res.json({ // errno: 0, // data: appData // })//接口返回json数据,上面配置的数据seller就赋值给data请求后调用 // }) // } }, lintOnSave: undefined, // publicPath:'./', }