這兩天一直在練習這個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吃透!