我想做这样的事情:
module: {
loaders: [{
test: /\.scss$/,
loader: "style!css!autoprefixer!sass"
}, {
test: /\.raw.scss$/,
loader: "css!autoprefixer!sass"
}
在上下文中:
module.exports = {
entry: path.join(srcPath, "app/core/bootstrap.ts"),
output: {
path: wwwPath,
filename: "app-[hash:6].js"
},
module: {
loaders: [{
test: /\.scss$/,
loader: "style!css!autoprefixer!sass"
}, {
test: /\.raw.scss$/,
loader: "css!autoprefixer!sass"
}, ...
]
},
resolve: {
extensions: ["", ".js", ".json", ".scss", ".raw.scss", ".html", ".ts"],
root: [
srcPath,
path.join(__dirname, "node_modules")
],
moduleDirectories: [...]
},
plugins: [...]
};
请注意,对于匹配.raw.scss
的文件,将运行两个加载程序集,因为*.raw.scss
也与.scss
测试匹配。
实施这样的事情的正确方法是什么?我必须做一些粗略的事情,比如改变第一个.scss
测试,还要包含一个负面的lookbehind(在.raw
之前不匹配包含.scss
的任何内容)?
答案 0 :(得分:1)
您是否尝试过使用exclude
? (Docs)
module: {
loaders: [{
test: /\.scss$/,
exclude: /\.raw.scss$/,
loader: "style!css!autoprefixer!sass"
}, {
test: /\.raw.scss$/,
loader: "css!autoprefixer!sass"
}]
}
答案 1 :(得分:-1)
如果更改顺序会发生什么,以便raw.scss首先出现?