vue.config.js配置

vue cli3.x創(chuàng)建的項(xiàng)目vue本身已經(jīng)做了些優(yōu)化,如果想在這個(gè)優(yōu)化之上在進(jìn)行優(yōu)化的話我們需要在項(xiàng)目的根目錄新建一個(gè)vue.config.js文件,廢話不多說(shuō),直接上代碼:

const path = require('path') //路徑
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');  //npm install uglifyjs-webpack-plugin --save-dev
//生產(chǎn)環(huán)境
const isProduction = process.env.NODE_ENV === 'production';
//引入文件的方法
function resolve (dir) {
    return path.join(__dirname, dir)
}
module.exports = {
    //基本路徑
    publicPath: './',
    //輸入文件目錄
    outputDir:"dist",
    lintOnSave:false,
    devServer: {
        compress:false,
        //open:true,
        proxy:{
            './api':{
                  target: 'http:xxx.com.cn', //需要代理服務(wù)器
                   ws:true //websocket,
                   changeOrigin:true,
                   pathRewrite:{
                          './api': '/'
                    }
             }
        }
    },
    //css相關(guān)配置
    css:{
        //是否使用css分離插件
        extract: true,
        //是否開(kāi)啟錯(cuò)誤定位
        sourceMap: false,
        //css預(yù)設(shè)置配置項(xiàng)
        loaderOptions:{
            scss:{
                // 注意:在 sass-loader v7 中,這個(gè)選項(xiàng)名是 "data"
                // 默認(rèn)情況下 `sass` 選項(xiàng)會(huì)同時(shí)對(duì) `sass` 和 `scss` 語(yǔ)法同時(shí)生效
                // 因?yàn)?`scss` 語(yǔ)法在內(nèi)部也是由 sass-loader 處理的
                // 但是在配置 `data` 選項(xiàng)的時(shí)候
                // `scss` 語(yǔ)法會(huì)要求語(yǔ)句結(jié)尾必須有分號(hào),`sass` 則要求必須沒(méi)有分號(hào)
                prependData:`@import "~@/assets/scss/common.scss";`
            }
        },
        //是否啟用css modules for all css
        modules: false
    },
    chainWebpack: config => {
       //配置別名
       config.resolve.alias
         .set("@",resolve("src"))
         .set("@img",resolve("src/assets/img"))
         .set("@scss",resolve("src/assets/css/common"))
        //生產(chǎn)環(huán)境配置
        if(isProduction){
            //刪除預(yù)加載
            config.plugins.delete('preload');
            config.plugins.delete('prefetch');
            //壓縮代碼 
            config.optimization.minimize(true);
            //分割代碼
            config.optimization.splitChunks({
                chunks: 'all'
            })
        }
    },
    configureWebpack:config=>{
        //為生產(chǎn)環(huán)境配置
        if(isProduction){
            //為生產(chǎn)環(huán)境修改配置
            config.plugins.push(
                new UglifyJsPlugin({
                    uglifyOptions:{
                        compress:{
                            drop_debugger: true,
                            drop_console: true
                        }
                    },
                    //是否生成sourceMap
                    sourceMap: false,
                    //是否多進(jìn)程運(yùn)行提高構(gòu)建效率
                    parallel: true
                })
            )
        }
    },
    //生產(chǎn)環(huán)境是否生成 sourceMap 文件
    productionSourceMap: false,
    //啟用并行化 默認(rèn)并發(fā)運(yùn)行數(shù) os.cpus().length - 1 ,并行化可以顯著加速構(gòu)建
    parallel: require('os').cpus().length > 1
}

基本就是這樣子,大家可以試試!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容