美文网首页
项目打包优化配置vue.config.js文件(@vue/cli

项目打包优化配置vue.config.js文件(@vue/cli

作者: zhiadd | 来源:发表于2020-03-18 15:23 被阅读0次
    const port = 8080; // 端口号
    const IS_PRODUCTION = process.env.NODE_ENV == "production"; // 正式环境
    const CompressionPlugin = require("compression-webpack-plugin");
    const UglifyJsWebpackPlugin = require("uglifyjs-webpack-plugin");
    /** key 是import 的包名,value 是CDN 为我们提供的全局变量名 */
    const externals = {
      "ali-oss": "OSS"
    };
    module.exports = {
      // 放在服务器根目录下面的
      publicPath: "/<服务器上项目所在的文件夹名>/",
      assetsDir: "static", // 输出的资源,所在的文件夹
      /** 去掉hash */
      filenameHashing: false,
      chainWebpack: config => {
        /** 如果是正式环境 */
        if (IS_PRODUCTION) {
          // 解决ie11兼容ES6
          config.entry("main").add("babel-polyfill");
          /** 删除懒加载模块的 prefetch preload,降低带宽压力(使用在移动端) */
          config.plugins.delete("prefetch").delete("preload");
          /** 阿里云SDK --不打包 */
          config.externals(externals);
          /** gzip 压缩 */
          config
            .plugin("compressionPlugin")
            .use(CompressionPlugin)
            .tap(() => [
              {
                test: /\.js$|\.html$|\.css/, //匹配文件名
                threshold: 10240, //超过10k进行压缩
                deleteOriginalAssets: false //是否删除源文件
              }
            ]);
          /** 去掉console.log debugger sourceMap*/
          config.optimization.minimizer([
            new UglifyJsWebpackPlugin({
              /**这个 sourceMap注释掉,默认就是置为false.(写为false 也是可以的)。
               * 反之设为true 是生效的。
               * 故在官方的配置(productionSourceMap: false)就可以注释掉了*/
              sourceMap: false,
              uglifyOptions: {
                warnings: false,
                compress: {
                  drop_console: true,
                  drop_debugger: true
                }
              }
            })
          ]);
        }
        /** 有此插件就不用了去,图片压缩网站压缩图片了 */
        /** png、jpg图片压缩有效--已测试 jpg图片压缩图片质量变差*/
        config.module
          .rule("images")
          .use("image-webpack-loader")
          .loader("image-webpack-loader")
          .options({
            bypassOnDebug: true
          })
          .end();
        /** 文件名称hash 三种规则 */
        /**hash chunkhash contenthash */
        // config.output.filename("[name].[contenthash].js").end();
      },
      devServer: {
        port: port, // 端口号
        host: "0.0.0.0",
        https: false, // https:{type:Boolean}
        open: false, //配置自动启动浏览器
        overlay: {
          warnings: false,
          errors: true
        },
        proxy: {
          [process.env.VUE_APP_BASE_API]: {
            target: process.env.VUE_APP_BASE_URL,
            changeOrigin: true,
            pathRewrite: {
              ["^" + process.env.VUE_APP_BASE_API]: ""
            }
          }
        }
      },
    
      css: {
        loaderOptions: {
          stylus: {
            "resolve url": true,
            import: []
          }
        }
      }
    };
    

    相关文章

      网友评论

          本文标题:项目打包优化配置vue.config.js文件(@vue/cli

          本文链接:https://www.haomeiwen.com/subject/xxxcyhtx.html