webpack4 css打包壓縮問題

韓萬慧發表於2018-05-17

這兩天一直在練習這個webpack4, 發現有好多問題和坑,做開發嘛,一定要有喜歡出問題並喜歡解決問題,堅決踩個坑填個坑的不怕死小強精神!

webpack4 在配置上其實是可以是想production和development的,

// webpack.config.js

module.exports = {
    // webpack會根據mode進行對Js打包,development壓縮,production下面自動壓縮,親測沒有問題
    mode: `development` // production
}

但是從js裡面分離出來的css怎麼打包呢?

我找了一天的相關文章,好多都是說webpack自動支援css壓縮,有的是說需要外掛,對,就是用外掛

optimize-css-assets-webpack-plugin
不過一定要看Npm官方網站

⚠️ For webpack v3 or below please use optimize-css-assets-webpack-plugin@3.2.0. The optimize-css-assets-webpack-plugin@4.0.0 version and above supports webpack v4.

做法是先安裝 optimize-css-assets-webpack-plugin

const optimizeCss = require(`optimize-css-assets-webpack-plugin`);

module.exports = {
    
    .....,
    //
    plugins: [
        new optimizeCss({
            assetNameRegExp: /.style.css$/g,
            cssProcessor: require(`cssnano`),
            cssProcessorOptions: { discardComments: { removeAll: true } },
            canPrint: true
        }),
    ],
    // 這個還待研究,看字面意思是優化的意思
    optimization: {
        // minimize: true,
        minimizer: [new optimizeCss({})],

    }
    
}

以上裡面的程式碼我也是看別人寫的,所以還需要安裝一個`cssnano`的包

之後執行生產環境打包命令,哦也,css果然壓縮了,但是看js,居然沒有被壓縮,不加上述程式碼的話js確實是預設壓縮的,於是網上又找解決方案,都說webpack4只要設定mode production即可,但是現在有個問題,壓縮了css之後js就不會壓縮,於是帶著試試看的心裡繼續安裝之前壓縮Js的外掛 uglify-webpack-plugin

最後發現問題解決了,只是我的心得,也是誤打誤撞,但如果有好的解決方案請大家積極留言,共同進步,把webpack吃透!

相關文章