【发布时间】:2017-06-07 21:41:25
【问题描述】:
我不明白为什么我的加载程序测试失败了。
我的目标:
测试 1:
匹配任何非global.css或global.scss
测试 2
仅匹配global.scss或global.css
原因是我不希望任何名为 global 的文件通过 module 选项传递
似乎我的第一个测试是让全球性的。使用https://regex101.com/ 等工具时,我可以看到我的正则表达式都正确返回真/假。
这可能是我的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 }
}
]
})
}
【问题讨论】:
-
测试期望匹配整个文件路径,例如'path/to/global.scss',而不仅仅是'global.scss'。
-
如果是这样,那为什么
test: /\.(css|scss)$/有效?
标签: javascript regex webpack css-modules