vue-cli3項目打包問題


vue-cli3項目打包問題

一:在哪配置webpack

你需要在根目錄新建vue.config.js配置webpack。

二:如何在項目里知道是什么環境(測試或者生產)

項目里會有個.env或者以此開頭的文件,你可以在vue.config.js或者其他地方使用process.env訪問到此文件,此文件里就是你定義的一些變量。process.env.NODE_ENV

 

 三:加代理

module.exports = {
  // 它支持webPack-dev-server的所有選項
  devServer: {
    host: "0.0.0.0",
    port: 8080, // 端口號
    https: false, // https:{type:Boolean}
    open: true, //配置自動啟動瀏覽器
    // proxy: 'http://localhost:4000' // 配置跨域處理,只有一個代理

    // 配置多個代理
    proxy: {
      "/api": {
        target: "http://172.22.12.28:30083/",
        // target: "http://172.23.40.202:30083/",
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
      "/api": {
        target: "http://172.22.12.28:30083/",
        // target: "http://172.23.40.202:30083/",
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
    }
  },
  publicPath: './'
};

四:生產環境壓縮代碼和去掉console

// vue.config.js 配置說明
//官方vue.config.js 參考文檔 https://cli.vuejs.org/zh/config/#css-loaderoptions

module.exports = {
  // 它支持webPack-dev-server的所有選項
  devServer: {
    host: "0.0.0.0",
    port: 8080, // 端口號
    https: false, // https:{type:Boolean}
    open: true, //配置自動啟動瀏覽器
    // proxy: 'http://localhost:4000' // 配置跨域處理,只有一個代理

    // 配置多個代理
    proxy: {
      "/api": {
        target: "http://172.22.12.28:30083/",
        // target: "http://172.23.40.202:30083/",
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
      "/api": {
        target: "http://172.22.12.28:30083/",
        // target: "http://172.23.40.202:30083/",
        changeOrigin: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
    }
  },
  publicPath: './'
};

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const CompressionWebpackPlugin = require('compression-webpack-plugin');

const productionGzipExtensions = ['js', 'css'];

const env = process.env.NODE_ENV;
console.log(env);

configureWebpack: (config) => {
  if (env !== 'development' || env !== 'test') {
    config.plugins.push(new CompressionWebpackPlugin({
      algorithm: 'gzip',
      test: new RegExp(`\\.(${productionGzipExtensions.join('|')})$`),
      threshold: 10240,
      minRatio: 0.8,
    }));
    config.plugins.push(
      new UglifyJsPlugin({
        uglifyOptions: {
          compress: {
            warnings: false,
            drop_debugger: true, // console
            drop_console: true,
            pure_funcs: ['console.log'] // 移除console
          },
        },
        sourceMap: false,
        parallel: true,
      }),
    );
  }
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM