gpt4 book ai didi

postcss - Webpack 2 CSS 模块支持

转载 作者:行者123 更新时间:2023-12-02 01:59:03 24 4
gpt4 key购买 nike

现在,我正在将当前的项目从 Webpack 1 迁移到 Webpack 2,并且我遇到了一些以前工作正常的 css 模块的问题。特别是,我使用 css-loaderreact-css-modules。我当前的开发配置如下:

test: /module\.css$/,
use: [
'style-loader',
{
loader: 'css-loader',
options: {
modules: true,
importLoaders: 1,
localIdentName: '[name]__[local]___[hash:base64:5]'
}
},
'postcss-loader'
]

效果很好。对于生产,我使用 ExtractTextPlugin (版本 2.0.0-beta.4),我的 Webpack 配置如下所示:

test: /module\.css$/,
loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: [
{
loader: 'css-loader',
options: {
modules: true,
importLoaders: 1,
localIdentName: '[hash:base64:5]'
}
},
'postcss-loader'
]
}),

在这种情况下,构建失败并出现以下错误:

 Module build failed: Error: composition is only allowed
when selector is single :local class name

所以看起来它没有预先考虑本地前缀。 css-loader 文档中也提到了它:

Note: For prerendering with extract-text-webpack-plugin you should use css-loader/locals instead of style-loader!css-loader in the prerendering bundle. It doesn't embed CSS but only exports the identifier mappings.

所以我尝试了 loader: 'css-loader/locals' 并将其添加到选项中,但不幸的是,没有任何效果。

我还尝试使用 postcss postcss-modules 插件解决这个问题。它修复了构建,但是当我尝试启动我的应用程序时,它看起来没有适当的 css 名称映射导入。

最佳答案

以防将来有人遇到同样的问题。对于此版本的 ExtractTextPlugin (2.0.0-beta.4),您应该以 Webpack-1 方式设置加载器参数。具体来说:

 loader: ExtractTextPlugin.extract({
fallbackLoader: 'style-loader',
loader: [
'css-loader?modules&importLoaders=1&localIdentName=[hash:base64:5]',
'postcss-loader'
]
}),

对我来说效果很好

关于postcss - Webpack 2 CSS 模块支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com