我无法理解我的装载机测试失败的原因。
我的目标:
测试1:
匹配不的任何内容global.css
或global.scss
测试2
仅匹配global.scss
或global.css
原因是我不希望任何名为global的文件通过module
选项
似乎我的第一次测试是让全球化。在使用https://regex101.com/等工具时,我可以看到我的正则表达式都正确返回true / false。
这可以归结为我的include
吗?
帮助! :)
webpack.config.js
{
test: /^(?!global\.s?css$).*\.s?css$/,
include: SRC_DIR,
use: extractPlugin.extract({
use: [
{
loader: 'css-loader',
options: {
modules: true,
camelCase: true
}
},
{
loader: 'postcss-loader',
options: {
plugins: (loader) => [require('autoprefixer')()]
}
},
'resolve-url-loader',
{
loader: 'sass-loader',
options: { sourceMap: true }
}
]
})
},
{
test: /^global\.s?css$/,
include: SRC_DIR,
use: extractPlugin.extract({
use: [
'css-loader',
{
loader: 'postcss-loader',
options: {
plugins: (loader) => [require('autoprefixer')()]
}
},
'resolve-url-loader',
{
loader: 'sass-loader',
options: { sourceMap: true }
}
]
})
}
答案 0 :(得分:0)
对于测试2,请尝试从正则表达式中删除^
。测试与文件路径匹配,而不仅仅是文件名,因此从路径的开头开始将导致测试失败。
对于测试1,您可以使用test: \/.s?css$\
捕获所有样式然后添加exclude: \global.s?css$\
来简化此负面模式,以防止包含全局。