vue-cli3 vue-config.js配置


  兩個月前,由於個人之前用的不是圖形化界面的,所以對於許多的配置,變成了,額,怎么這個不能配了,我想要之前webpack可配置的一些插件,於是百度了一番,綜合項目使用了,如下配置,算是對這些東西的一個記錄

  1 const path = require('path')
  2 const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);
  3 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
  4 const CompressionWebpackPlugin = require('compression-webpack-plugin');
  5 const productionGzipExtensions = ['js', 'css']
  6 const BrotliPlugin = require("brotli-webpack-plugin");
  7 const apibaseUrl ="http://a.ab.cn:83/aaaa"
  8  
  9 function resolve(dir) {
 10     return path.join(__dirname, dir)
 11 }
 12 module.exports = {
 13     baseUrl: '/vue_dist/app/',
 14     devServer: {
 15         proxy: {
 16             '/vue_dist/api': {
 17                 target: `${apibaseUrl}/api`,
 18                 pathRewrite: { '^/vue_dist/api': '' },
 19             },
 20            
 21         }
 22     },
 23     //生產環境構建文件的目錄
 24     outputDir:"dist",
 25     assetsDir:'assets',
 26     //生產環境是否生成SourceMap
 27     productionSourceMap: true,
 28     // 是否使用包含運行時編譯器的 Vue 構建版本
 29     runtimeCompiler: true,
 30     parallel: require('os').cpus().length > 1,
 31     // css相關配置
 32     css: {
 33     // 是否使用css分離插件 ExtractTextPlugin
 34     extract: IS_PROD?true:false,
 35     // 開啟 CSS source maps?
 36     sourceMap:IS_PROD?false:true,
 37     // css預設器配置項
 38     loaderOptions: {},
 39     // 啟用 CSS modules for all css / pre-processor files.
 40     modules: false
 41     },
 42 
 43     configureWebpack: config => {
 44         //生產環境去掉console 和 debugger
 45         //壓縮代碼減少文件體積    
 46         if (IS_PROD) {  
 47             const plugins = [];
 48             plugins.push(
 49                 new UglifyJsPlugin({
 50                 uglifyOptions: {
 51                     compress: {
 52                     warnings: false,
 53                     drop_console: true,
 54                     drop_debugger: true,//移除debugger
 55                     pure_funcs: ['console.log']//移除console
 56                     }
 57                 },
 58                 sourceMap: false,
 59                 parallel: true
 60                 })
 61             );
 62             plugins.push(
 63                 new CompressionWebpackPlugin({
 64                 filename: '[path].gz[query]',
 65                 algorithm: 'gzip',
 66                 test: productionGzipExtensions,
 67                 threshold: 10240,
 68                 minRatio: 0.8
 69                 })
 70             );
 71             // Zopfli壓縮 https://webpack.js.org/plugins/compression-webpack-plugin/
 72             /* plugins.push(
 73             new CompressionWebpackPlugin({
 74                 algorithm(input, compressionOptions, callback) {
 75                 return zopfli.gzip(input, compressionOptions, callback);
 76                 },
 77                 compressionOptions: {
 78                 numiterations: 15
 79                 },
 80                 minRatio: 0.99,
 81                 test: productionGzipExtensions
 82             })
 83             );
 84             plugins.push(
 85             new BrotliPlugin({
 86                 test: productionGzipExtensions,
 87                 minRatio: 0.99
 88             })
 89             );
 90             config.plugins = [
 91                 ...config.plugins,
 92                 ...plugins
 93             ]; */
 94         }
 95     },
 96     chainWebpack: config => {
 97         // 修復HMR
 98         config.resolve.symlinks(true)
 99         //配置別名
100         config.resolve.alias
101             .set("@", resolve('src')) // key,value自行定義,比如.set('@@', resolve('src/components'))
102         if (IS_PROD) {
103             // 生產環境配置
104             
105         } else {
106             //開發環境配置
107         
108         }
109     }
110     
111 }

 


免責聲明!

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



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