在 Webpack 2 中使用 extractTextPlugin 和 postCss 插件
Use extractTextPlugin and postCss plugins in Webpack 2
我正在从 webpack v1 迁移到 v2。我按照官方文档更新了 webpack.config.js
:
...
module: {
rules: [
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
'postcss-loader'
],
}),
exclude: [...]
},
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader',
}),
include: [...]
}
]
},
...
/**
* postcss: [
* nested(),
* autoprefixer(),
* values
* ]
*/
我的问题是 postcss 插件(嵌套、自动前缀、值)。 Webpack 2 不再支持自定义 属性,建议使用 options
.
我尝试了 options
和 plugins: () => [nested, autoprefixer, values]
但无法正常工作。
执行此操作的正确方法是什么?谢谢。
建议使用 postcss.config.js
文件导出带有选项的对象(参见 Postcss usage)。您的配置将如下所示(省略导入语句):
module.exports = {
plugins: [
nested(),
autoprefixer(),
values
]
}
但如果你想的话,你可以直接在webpack配置中指定(如Postcss options所示):
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
{
loader: 'postcss-loader',
options: {
plugins: () => [nested(), autoprefixer(), values]
}
}
]
})
exclude: [...]
},
请注意,选项在加载程序本身,而不是整个规则。
我正在从 webpack v1 迁移到 v2。我按照官方文档更新了 webpack.config.js
:
...
module: {
rules: [
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
'postcss-loader'
],
}),
exclude: [...]
},
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: 'css-loader',
}),
include: [...]
}
]
},
...
/**
* postcss: [
* nested(),
* autoprefixer(),
* values
* ]
*/
我的问题是 postcss 插件(嵌套、自动前缀、值)。 Webpack 2 不再支持自定义 属性,建议使用 options
.
我尝试了 options
和 plugins: () => [nested, autoprefixer, values]
但无法正常工作。
执行此操作的正确方法是什么?谢谢。
建议使用 postcss.config.js
文件导出带有选项的对象(参见 Postcss usage)。您的配置将如下所示(省略导入语句):
module.exports = {
plugins: [
nested(),
autoprefixer(),
values
]
}
但如果你想的话,你可以直接在webpack配置中指定(如Postcss options所示):
{
test: /\.css$/,
use: extractTextPlugin.extract({
fallback: 'style-loader',
use: [
'css-loader?modules&localIdentName=[path][name]_[local]--[hash:base64:8]',
{
loader: 'postcss-loader',
options: {
plugins: () => [nested(), autoprefixer(), values]
}
}
]
})
exclude: [...]
},
请注意,选项在加载程序本身,而不是整个规则。