const webpack = require('webpack') const { cdn, getProxyOfDomain, getProxyOfIp } = require('./config') module.exports = { parallel: false, productionSourceMap: false, outputDir: 'page_big_pc', publicPath: process.env.VUE_APP_BASE_PUBLIC, lintOnSave: true, devServer: { disableHostCheck: true, proxy: { // 反爬虫接口代理 // '/subVipPortrait/winner': { // target: 'http://192.168.20.178:8800', // changeOrigin: true, // logLevel: 'debug' // }, '^/bigmember': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:814', changeOrigin: true, logLevel: 'debug', pathRewrite: { '^/bigmember': '/bigmember' } }, '^/jypay': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:86', changeOrigin: true, logLevel: 'debug' }, '^/publicapply': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:828', changeOrigin: true, logLevel: 'debug' }, '^/subscribepay': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:86', changeOrigin: true, logLevel: 'debug' }, '^/salesLeads': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:8881', changeOrigin: true, logLevel: 'debug' }, '^/privatedata': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:829', changeOrigin: true, logLevel: 'debug' }, '^/jymessageCenter': { target: 'https://jybx2-webtest.jydev.jianyu360.com', // target: 'http://127.0.0.1:829', changeOrigin: true, logLevel: 'debug' } }, headers: { 'Access-Control-Allow-Origin': '*' }, // proxy: getProxyOfDomain('https://web2-jytest.jydev.jianyu360.com') || getProxyOfIp('http://127.0.0.1') }, css: { loaderOptions: { sass: { prependData: '@import "@/assets/style/_mixin.scss";@import "@/assets/style/_variables.scss";' } } }, chainWebpack: config => { // single-spa if (!process.env.VUE_APP_ALONE) { if (process.env.NODE_ENV === 'production') { // 生产环境配置 config.externals([ 'vue', 'vue-router', 'vuex', 'axios', 'lodash', 'moment' ]) config.plugin('html').tap(args => { // html中添加cdn args[0].cdn = cdn return args }) // config.output.filename('./js/[name].[chunkhash:8].js') config.output.filename = function (pathData) { return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js'; }; config.output.chunkFilename('./js/[name].[chunkhash:8].js'); // config.output.chunkFilename = function (pathData) { // console.log(JSON.stringify(pathData.chunk), '11') // return pathData.chunk.name === 'app' ? './js/[name].js' : './js/[name].[chunkhash:8].js'; // }; config.optimization.minimize(true) .minimizer('terser') .tap(args => { let { terserOptions } = args[0]; terserOptions.compress.drop_console = true; terserOptions.compress.drop_debugger = true; return args }); } else { config.devServer.set('inline', false) config.devServer.set('hot', true) config.output.filename('js/[name].js') } } // 分析静态资源 if (process.env.use_analyzer) { config .plugin('webpack-bundle-analyzer') .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin) } }, filenameHashing: false, configureWebpack: { plugins: [ new webpack.ProvidePlugin({ jQuery: 'jquery', $: 'jquery' }) ] } }