123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /* 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: {
- open: true,
- proxy: {
- "/labsl": {
- target: "http://60.205.177.43:28888",
- changeOrigin: true,
- secure: false,
- },
- "/meiku": {
- target: "http://60.205.177.43:28888",
- changeOrigin: true,
- secure: false,
- },
- "/datacenter": {
- target: "http://60.205.177.43:28888",
- changeOrigin: true,
- secure: false,
- },
- "/equip-component": {
- target: "http://60.205.177.43:28888",
- changeOrigin: true,
- secure: false,
- },
- // 图片服务器
- "/image-service": {
- target: "http://39.97.179.199:8888",
- changeOrigin: true,
- secure: false,
- pathRewrite: {
- "^/image-service": "/image-service/",
- },
- },
- },
- // 关闭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",
- // 打包名称
- outputDir: "persagyPlan",
- // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
- assetsDir: "static",
- transpileDependencies: [
- "@persagy-web", // 指定对第三方依赖包进行babel-polyfill处理
- ],
- productionSourceMap: false,
- // 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: process.env.NODE_ENV === "production", // 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')
- // .loader('svgo-loader')
- // }
- };
|