@use in sass-无法从node_modules解析css的路径



我在我的项目中安装了modern normalize,我试图从一个sass文件中包含它的css文件,如下所示:

@use '~modern-normalize/modern-normalize' as *;

然而,我一直得到这个:

错误:找不到要导入的样式表。╷9│ @使用'~modern normalize/modern normalize'为*;│^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

即使在我的IDE(vscode(中我可以CMD+单击它,它也可以很好地导航和打开文件,我在我的node_modules目录中看到

我是不是遗漏了一些与配置相关的东西?

您的路径看起来很奇怪,路径的波浪号~前缀开始告诉用于css-loader解析导入";如同模块";,从nodemodule目录开始。

然而,Angular反对在Sass@use@import语句中使用~

Tilde导入在Sass加载程序中已被弃用很长一段时间而且它们无法在v13中使用新的包格式。这些变化添加一个将删除波浪号的迁移。

请参阅https://github.com/angular/components/commit/f2ff9e31425f0e395e6926bcaf48f876688000d8

所以试着去掉它。例如

@use 'modern-normalize/modern-normalize' as *;
Angular已经删除了对sass加载程序的波浪号支持。在angular.json中为应用程序添加到节点模块的相对路径
"stylePreprocessorOptions": {
"includePaths": [
"./node_modules"
]
}

然后从导入路径中删除~。

或者,您可以使用绝对路径进行导入,如下面所示,构造node_modules的路径,您可能需要检查文件的正确路径。

use '../../node_modules/modern-normalize/modern-normalize' as *;

相关内容

  • 没有找到相关文章

最新更新