12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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'
- })
- ]
- }
- }
|