|
@@ -1,3 +1,41 @@
|
|
|
+const externals = {
|
|
|
+ // 把导入语句里的 vue 替换成运行环境(html)里的全局变量 Vue
|
|
|
+ vue: 'Vue',
|
|
|
+ 'vue-router': 'VueRouter',
|
|
|
+ vuex: 'Vuex',
|
|
|
+ axios: 'axios',
|
|
|
+ echarts: 'echarts',
|
|
|
+ 'v-charts': 'vcharts', // 这个vcharts没有全局变量,是被直接挂载到vue上了
|
|
|
+ 'lodash': '_', // lodash在全局变量为_
|
|
|
+ moment: 'moment'
|
|
|
+}
|
|
|
+
|
|
|
+const cdn = {
|
|
|
+ css: [
|
|
|
+ // '//unpkg.com/element-ui@2.10.1/lib/theme-chalk/index.css'
|
|
|
+ ],
|
|
|
+ jsdelivr: [
|
|
|
+ '//cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/vue-router@3.1.5/dist/vue-router.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/vuex@3.4.0/dist/vuex.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/axios@0.19.2/dist/axios.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/echarts@4.8.0/dist/echarts.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/index.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
|
|
|
+ ],
|
|
|
+ js: [
|
|
|
+ '//cdn-common.jianyu360.cn/cdn/lib/vue/2.6.11/vue.min.js',
|
|
|
+ '//cdn-common.jianyu360.cn/cdn/lib/vue-router/3.1.5/vue-router.min.js',
|
|
|
+ '//cdn-common.jianyu360.cn/cdn/lib/vuex/3.4.0/vuex.min.js',
|
|
|
+ '//cdn-common.jianyu360.cn/cdn/lib/axios/0.19.2/axios.min.js',
|
|
|
+ '//cdn-common.jianyu360.cn/cdn/lib/echarts/4.8.0/echarts.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/v-charts@1.19.0/lib/index.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js',
|
|
|
+ '//cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js'
|
|
|
+ ]
|
|
|
+}
|
|
|
+
|
|
|
module.exports = {
|
|
|
parallel: false,
|
|
|
productionSourceMap: false,
|
|
@@ -20,11 +58,6 @@ module.exports = {
|
|
|
target: 'http://web-jytest.jydev.jianyu360.com',
|
|
|
changeOrigin: true,
|
|
|
logLevel: 'debug'
|
|
|
- },
|
|
|
- '^/jypay': {
|
|
|
- target: 'http://web-jytest.jydev.jianyu360.com',
|
|
|
- changeOrigin: true,
|
|
|
- logLevel: 'debug'
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -36,13 +69,28 @@ module.exports = {
|
|
|
}
|
|
|
},
|
|
|
chainWebpack: config => {
|
|
|
+ // single-spa
|
|
|
if (!process.env.VUE_APP_ALONE) {
|
|
|
config.devServer.set('inline', false)
|
|
|
config.devServer.set('hot', true)
|
|
|
- if (process.env.NODE_ENV !== 'production') {
|
|
|
+
|
|
|
+ if (process.env.NODE_ENV === 'production') {
|
|
|
+ config.externals(externals)
|
|
|
+ config.plugin('html').tap(args => {
|
|
|
+ // html中添加cdn
|
|
|
+ args[0].cdn = cdn
|
|
|
+ return args
|
|
|
+ })
|
|
|
+ } else {
|
|
|
config.output.filename('js/[name].js')
|
|
|
}
|
|
|
- config.externals(['vue', 'vue-router'])
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分析静态资源
|
|
|
+ if (process.env.use_analyzer) {
|
|
|
+ config
|
|
|
+ .plugin('webpack-bundle-analyzer')
|
|
|
+ .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
|
|
|
}
|
|
|
},
|
|
|
filenameHashing: false
|