const { defineConfig } = require('@vue/cli-service') const webpack = require('webpack') const cdn = { css: [ // '//unpkg.com/element-ui@2.10.1/lib/theme-chalk/index.css' ], js: [ '//cdn-common.jianyu360.com/cdn/lib/vue/2.6.14/vue.runtime.min.js', '//cdn-common.jianyu360.com/cdn/lib/vue-router/3.1.5/vue-router.min.js', '//cdn-common.jianyu360.com/cdn/lib/vuex/3.4.0/vuex.min.js', '//cdn-common.jianyu360.com/cdn/lib/axios/0.19.2/axios.min.js', '//cdn-common.jianyu360.com/cdn/lib/js-cookie/2.2.1/js.cookie.min.js', '//cdn-common.jianyu360.com/cdn/lib/moment/2.29.1/min/moment.min.js' ] } const externals = { vue: 'Vue', 'vue-router': 'VueRouter', vuex: 'Vuex', axios: 'axios', 'js-cookie': 'Cookies', moment: 'moment' } module.exports = defineConfig({ publicPath: process.env.VUE_APP_BASE_URL, outputDir: 'page_pc_social', transpileDependencies: true, lintOnSave: true, productionSourceMap: false, devServer: { port: '8080', open: false, client: { overlay: { errors: true, warnings: false } }, historyApiFallback: true, proxy: { '^/jyapi': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' }, '^/publicapply': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' }, '^/entbase': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' }, '^/bigmember': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' }, '^/aiChat': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' }, '^/jypay': { target: 'https://jybx3-webtest.jydev.jianyu360.com/', changeOrigin: true, logLevel: 'debug' } } }, css: { loaderOptions: { sass: { additionalData: '@import "@/assets/style/_mixin.scss";@import "@/assets/style/_variables.scss";' } } }, chainWebpack: config => { if (process.env.NODE_ENV === 'production') { // 生产环境配置 config.externals(externals) 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 }) } config.plugin('provide').use(webpack.ProvidePlugin,[{ 'window.Quill': 'quill/dist/quill.js', 'Quill': 'quill/dist/quill.js' }]) }, pwa: { iconPaths: { favicon32: 'favicon.ico', favicon16: 'favicon.ico', appleTouchIcon: 'favicon.ico', maskIcon: 'favicon.ico', msTileImage: 'favicon.ico' } } })