Closed abigmiu closed 2 years ago
我在使用的时候, vue-cli项目, 发现
config.module.rules
里面有一项内容不存在test
字段, 所以可以先判断有没有test字段
(为了加粗显示, 就没有使用代码块了, 直接用的文本)// vue.config.js module.exports = { configureWebpack: config => { const sassLoader = require.resolve('sass-loader'); config.module.rules.filter(rule => { return
**rule.test**
&& rule.test.toString().indexOf("scss") !== -1; }) .forEach(rule => { rule.oneOf.forEach(oneOfRule => { const sassLoaderIndex = oneOfRule.use.findIndex(item => item.loader === sassLoader); oneOfRule.use.splice(sassLoaderIndex, 0, { loader: require.resolve("css-unicode-loader") }); }); }); } }
@abigmiu 嗯,明白你的意思,谢谢你的建议;不过用法中说明中给出的是个配置demo,并不适用所有场景。
test
去匹配sass file
而不是scss file
:
config.module.rules.filter(rule => { return rule.test.toString().indexOf(**'sass'**) !== -1; }) .forEach(rule => { ... });
vue inspect > webpack-config-out.js
来查看下当前项目的配置,然后配置的时候让css-unicode-loader
在use
中的位置是在sass-loader
之前就行
我在使用的时候, vue-cli项目, 发现
config.module.rules
里面有一项内容不存在test
字段, 所以可以先判断有没有test字段
(为了加粗显示, 就没有使用代码块了, 直接用的文本)// vue.config.js module.exports = { configureWebpack: config => { const sassLoader = require.resolve('sass-loader'); config.module.rules.filter(rule => { return
**rule.test**
&& rule.test.toString().indexOf("scss") !== -1; }) .forEach(rule => { rule.oneOf.forEach(oneOfRule => { const sassLoaderIndex = oneOfRule.use.findIndex(item => item.loader === sassLoader); oneOfRule.use.splice(sassLoaderIndex, 0, { loader: require.resolve("css-unicode-loader") }); }); }); } }