|
@@ -1,10 +1,13 @@
|
|
|
+/* eslint-disable @typescript-eslint/camelcase */
|
|
|
+// gzip 压缩代码
|
|
|
+const CompressionPlugin = require('compression-webpack-plugin')
|
|
|
+// 打包分析
|
|
|
+const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
|
|
|
+// terser-webpack-plugin 可不引入, @vue/cli-service 中已经引入了terser-webpack-plugin
|
|
|
+// const TerserPlugin = require('terser-webpack-plugin')
|
|
|
module.exports = {
|
|
|
devServer: {
|
|
|
- // 关闭esline
|
|
|
- overlay: {
|
|
|
- warnings: false,
|
|
|
- errors: false,
|
|
|
- },
|
|
|
+ open: true,
|
|
|
proxy: {
|
|
|
'/labsl': {
|
|
|
target: 'http://60.205.177.43:8080',
|
|
@@ -33,6 +36,15 @@ module.exports = {
|
|
|
secure: false,
|
|
|
},
|
|
|
},
|
|
|
+ // 关闭esline
|
|
|
+ overlay: {
|
|
|
+ warnings: false,
|
|
|
+ errors: false,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ chainWebpack: (config) => {
|
|
|
+ config.output.filename('static/js/[name].[hash].js').end()
|
|
|
+ config.output.chunkFilename('static/js/[name].[hash].js').end()
|
|
|
},
|
|
|
lintOnSave: false,
|
|
|
publicPath: '/persagyPlan',
|
|
@@ -40,6 +52,38 @@ module.exports = {
|
|
|
outputDir: 'persagyPlan',
|
|
|
// 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
|
|
|
assetsDir: 'static',
|
|
|
+ transpileDependencies: [
|
|
|
+ '@persagy-web', // 指定对第三方依赖包进行babel-polyfill处理
|
|
|
+ ],
|
|
|
+ // CSS 相关选项
|
|
|
+ css: {
|
|
|
+ // 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)
|
|
|
+ extract: true,
|
|
|
+ },
|
|
|
+ // 配置webpack
|
|
|
+ configureWebpack: (config) => {
|
|
|
+ // 生成环境,删除console.log和debugger
|
|
|
+ if (process.env.VUE_Plan_RealEnv === 'production') {
|
|
|
+ config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true //删除console
|
|
|
+ config.optimization.minimizer[0].options.terserOptions.compress.drop_debugger = true //删除 debugger
|
|
|
+ config.optimization.minimizer[0].options.terserOptions.compress.pure_funcs = ['console.log'] //删除
|
|
|
+ }
|
|
|
+ const plugins = [
|
|
|
+ // 压缩代码
|
|
|
+ new CompressionPlugin({
|
|
|
+ test: /\.js$|\.html$|\.css$/, // 匹配文件名
|
|
|
+ threshold: 10240, // 对超过10k的数据压缩
|
|
|
+ deleteOriginalAssets: true, // false 不删除源文件 true 删除源文件
|
|
|
+ }),
|
|
|
+ ]
|
|
|
+ // 生产环境打包分析体积 命令 npm run build --report 或者 yarn build --report
|
|
|
+ if (process.env.NODE_ENV === 'production' && (process.env.npm_config_report || process.env.npm_config_argv.indexOf('--report') !== -1)) {
|
|
|
+ plugins.push(new BundleAnalyzerPlugin())
|
|
|
+ }
|
|
|
+ return {
|
|
|
+ plugins,
|
|
|
+ }
|
|
|
+ },
|
|
|
// chainWebpack:config =>{
|
|
|
// config.module.rule('svg-sprite')
|
|
|
// .use('svgo-loader')
|