似乎 webpack 忽略了 'include' 和 'exclude' 规则
Seems like webpack ignores 'include' and 'exclude' rules
我有以下文件夹设置:
app/
scss/
lib/
grid.css
main.scss
webpack/
webpack.config.js
在我的 webpack.config.js 中,我有以下装载程序来处理 scss 和 css:
{
test: /\.(css|scss)$/,
exclude: path.join(__dirname, '..', 'app/scss/lib/'),
loader: ExtractTextPlugin.extract(
'style-loader', 'css-loader?module!resolve-url!postcss-loader!sass-loader?sourceMap'
)
},
{
test: /\.(css|scss)$/,
include: path.join(__dirname, '..', 'app/scss/lib/'),
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
}
这里的想法是 css-loader 使用模块,本质上是将 class 名称(如 .red
重写为 .JHSKJasdasa
等随机名称,但是,我希望它排除 /lib 文件夹并保留其中的 classes 与它们相同(香草),但是 classes 在 grid.css 喜欢 .container
变成随机的。
可能的答案是 webpack 被 path.join
- documentation 指定 path.resolve
弄糊涂了。我认为它可能会对路径进行直接字符串比较,因此相对 ..
会破坏它,因此 exclusion/inclusion 无法正常工作。 path.resolve
应该解析为绝对路径。
如果这不起作用,请尝试添加文件夹 app/scss/src
(或类似文件夹)以分离出您要使用 css-loader 的代码。然后 include
而不是 exclude
ing lib
.
我有以下文件夹设置:
app/
scss/
lib/
grid.css
main.scss
webpack/
webpack.config.js
在我的 webpack.config.js 中,我有以下装载程序来处理 scss 和 css:
{
test: /\.(css|scss)$/,
exclude: path.join(__dirname, '..', 'app/scss/lib/'),
loader: ExtractTextPlugin.extract(
'style-loader', 'css-loader?module!resolve-url!postcss-loader!sass-loader?sourceMap'
)
},
{
test: /\.(css|scss)$/,
include: path.join(__dirname, '..', 'app/scss/lib/'),
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
}
这里的想法是 css-loader 使用模块,本质上是将 class 名称(如 .red
重写为 .JHSKJasdasa
等随机名称,但是,我希望它排除 /lib 文件夹并保留其中的 classes 与它们相同(香草),但是 classes 在 grid.css 喜欢 .container
变成随机的。
可能的答案是 webpack 被 path.join
- documentation 指定 path.resolve
弄糊涂了。我认为它可能会对路径进行直接字符串比较,因此相对 ..
会破坏它,因此 exclusion/inclusion 无法正常工作。 path.resolve
应该解析为绝对路径。
如果这不起作用,请尝试添加文件夹 app/scss/src
(或类似文件夹)以分离出您要使用 css-loader 的代码。然后 include
而不是 exclude
ing lib
.