ng 测试因 SassError: Can't find stylesheet to import 而失败

Dro*_*ich 13 sass angular

.scss我在模块中包含的组件中导入了几个文件。当我为开发或生产构建项目时,一切都很好,但是当我运行时,ng test我看到一堆错误,内容如下:

\n
SassError: SassError: Can't find stylesheet to import.\n\n1 \xe2\x94\x82 @import "mixins";\n
Run Code Online (Sandbox Code Playgroud)\n

我的模块中的每个导入.scss文件都会发生这种情况。共享样式放置在src/assets/styles如下目录中:

\n
-src\n  -assets\n    -styles\n      -_mixins.scss\n      -_theme.scss\n      ...etc\n
Run Code Online (Sandbox Code Playgroud)\n

在我的angular.json我有以下属性:

\n
"styles": ["src/styles.scss"],\n"stylePreprocessorOptions": {\n  "includePaths": ["src/assets/styles"]\n},\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试在 main 中引用我的所有样式style.scss,但无济于事。让我烦恼的主要事情是,在开发和生产模式下一切都工作正常,只是测试带来了这些错误,我无法找到解决此问题的方法。

\n
Angular version is 10.0.5\nSass version is 1.26.5\nSass loader version is 8.0.2\n
Run Code Online (Sandbox Code Playgroud)\n

Mar*_*rio 18

这个问题已经被回答过好几次了。还请使用搜索并对问题和答案进行投票。

在 Stackoverflow 上: 1 2 3

在 Github 上的 AngularCLI 上: 1

要修复此导入并添加到预处理器。

用这个更新angular.json补丁中的文件projects.NAME.architect.test

"styles": ["src/styles.scss"],
"stylePreprocessorOptions": {
  "includePaths": ["src/assets/styles"]
},
Run Code Online (Sandbox Code Playgroud)

  • 我认为有人提到这一行已经添加到 angular.json 中 (3认同)
  • 嗯,是的,请参阅上面的评论。`ng-test 部分应该包含它自己的 includePaths`。错误是 includePaths 不包含样式,正如我的回答所述。不知道为什么投了反对票,但这就是 Stackoverflow 的工作原理不是吗? (2认同)