Vue中类似这样引入css,
@import ‘~abc/dist/abc.full.css’
编译会报错,Error:Fail to find ‘~abc/dist/abc.full.css’
用最新的vue-cli创建新项目,进行测试,仍然有这个问题。
去掉波浪线,即改为@import ‘abc/dist/abc.full.css’却可以正常加载。已确认abc是已正常安装的模块。
不知道有没有人遇到过,请不吝赐教,谢谢。
网上搜了两天了,没有结果。
补充信息:
异常是从node_modules\_postcss-import@11.0.0@postcss-import\lib\resolve-id.js中报出来的,我猜测是因为vue默认采用postcss-import来导入css,而postcss-import官方文档中说明对模块的导入不需要加波浪号(~)。 反复查找发现工程下有一个postcss配置文件.postcssrc.js,内容如下:
module.exports = {
“plugins”: {
“postcss-import”: {},
“postcss-url”: {},
“autoprefixer”: {}
}
}
注释掉postcss-import后,发现webpack编译时可以支持波浪号了。
module.exports = {
“plugins”: {
// “postcss-import”: {},
“postcss-url”: {},
“autoprefixer”: {}
}
}
问题解决,且弄清楚了问题原因。
另一个更好的解决办法:
module.exports = {
“plugins”: {
“postcss-import”: {
resolve(id) {
if (id.charAt(0) == '~') {
return id.substr(1)
} else {
return id
}
}
},
“postcss-url”: {},
“autoprefixer”: {}
}
}