在使用webpack的過程中,我們經(jīng)常會(huì)遇到使用css-loader將CSS文件打包的情況。然而,有時(shí)候我們會(huì)發(fā)現(xiàn)css-loader對(duì)于CSS的壓縮并不起作用。這是為什么呢?
首先,我們需要明確一點(diǎn),css-loader并不是一個(gè)壓縮工具,它的主要作用是將CSS文件轉(zhuǎn)換成一個(gè)JS模塊。這個(gè)模塊包含了CSS文件中所有的樣式信息,以及一些關(guān)于樣式所應(yīng)用的選擇器和規(guī)則的詳細(xì)信息。
如果我們希望對(duì)CSS文件進(jìn)行壓縮,通常需要使用另一個(gè)插件來完成這項(xiàng)工作,比如cssnano。如果你已經(jīng)在webpack配置文件中配置了cssnano,但發(fā)現(xiàn)它并沒有起到壓縮CSS的效果,那么很可能是因?yàn)閣ebpack的配置出現(xiàn)了問題。
// 正確的配置方式 module.exports = { module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader', { loader: 'postcss-loader', options: { postcssOptions: { plugins: [ require('cssnano')() ] } } } ] } ] } }
像上面的代碼那樣,使用postcss-loader將cssnano作為插件傳入,就可以正確的進(jìn)行CSS壓縮。
總之,css-loader本身并不是一個(gè)壓縮工具,如果我們想要壓縮CSS文件,需要使用其他插件并正確配置webpack。