从webpack的ExtractTextPlugin和style-loader中压缩CSS

13
3个回答

14

所以,除非你明确禁用了它,否则这将通过CSS加载器自动完成。由于你在问问题,我假设这意味着你已经这样做了。如果你正在提取而不是缩小代码,那么UglifyJsPlugin本身不会缩小CSS。

对于我的需求,我需要提取CSS并提供一个缩小和未缩小的版本。所以我遇到了同样的问题,我可以让它被缩小或未缩小,但不能同时存在。

我使用 Webpack 的optimize-css-assets插件解决了这个问题。它允许你使用ExtractTextPlugin提取的CSS进行缩小,并且你可以设置一个类似于UglifyJsPlugin的正则表达式规则。

默认情况下,该插件使用css-nano模块进行压缩,尽管你可以根据需要更换你喜欢的模块。

以下是一个基本配置:

plugins: [
  new ExtractTextPlugin('[name].css'),
  new webpack.optimize.UglifyJsPlugin({
    compress: { warnings: false },
    include: /\.min\.js$/
  }),
  new OptimizeCssAssetsPlugin({
    assetNameRegExp: /\.min\.css$/,
    cssProcessorOptions: { discardComments: { removeAll: true } }
  })
]

@Civilian,您介意把这个答案改正一下吗? - Nicholas

5
我建议看一下postcss和postcss-loader。这样,一旦设置好了,您可以在没有经过几天与webpack的斗争的情况下对CSS/SCSS进行许多酷炫的操作。

-5

UglifyJsPlugin添加一个条目对我来说是有效的。

plugins: [
    new ExtractTextPlugin("[name].css"),
    new webpack.optimize.UglifyJsPlugin({
        compressor: { warnings: false }
    })
]

UglifyJsPlugin 只压缩 JavaScript。问题是关于压缩 CSS 的。 - vangorra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接