const packageName = require('./package.json').name const webpack = require('webpack') const { cdn, getProxyOfDomain, getProxyOfIp } = require('./config') const external = { vue: 'Vue', 'vue-router': 'VueRouter', vuex: 'Vuex', axios: 'axios', lodash: '_', // 解决画像visualMap不显示问题 // echarts: 'echarts', // moment: 'moment', jquery: '$' } module.exports = { productionSourceMap: false, outputDir: 'page_big_pc', publicPath: process.env.VUE_APP_BASE_PUBLIC, lintOnSave: true, devServer: { disableHostCheck: true, headers: { 'Access-Control-Allow-Origin': '*' }, proxy: getProxyOfDomain('https://jybx3-webtest.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(external) config.plugin('html').tap(args => { // html中添加cdn args[0].cdn = cdn return args }) config.optimization.minimize(true) .minimizer('terser') .tap(args => { const { 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) } } // 分析静态资源 if (process.env.use_analyzer) { config .plugin('webpack-bundle-analyzer') .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin) } }, configureWebpack: { output: { library: 'bigMemberSubApp', libraryTarget: 'umd', jsonpFunction: `webpackJsonp_${packageName}` }, plugins: [ new webpack.ProvidePlugin({ jQuery: 'jquery', $: 'jquery' }) ] } }