【问题标题】:ng test fails because of SassError: Can't find stylesheet to import由于 SassError 导致 ng 测试失败:找不到要导入的样式表
【发布时间】:2020-11-26 15:03:15
【问题描述】:

我有几个 .scss 文件导入到我的组件中,这些文件包含在模块中。当我为 dev 或 prod 构建项目时,一切都很好,但是当我运行 ng test 时,我看到一堆错误,比如:

SassError: SassError: Can't find stylesheet to import.

1 │ @import "mixins";

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

-src
  -assets
    -styles
      -_mixins.scss
      -_theme.scss
      ...etc

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

"styles": ["src/styles.scss"],
"stylePreprocessorOptions": {
  "includePaths": ["src/assets/styles"]
},

我尝试在主 style.scss 中引用我的所有样式,但无济于事。困扰我的主要是在开发和生产模式下一切正常,只是带来这些错误的测试,我想不出办法解决这个问题。

Angular version is 10.0.5
Sass version is 1.26.5
Sass loader version is 8.0.2

【问题讨论】:

  • 你能发布你所有的 angular.json 吗?或至少ng-testng-build/serve 部分?
  • 请仔细检查您是否从根目录运行ng test
  • @RazRonen 非常感谢!我还没想出ng-test 部分应该包含它自己的includePaths 属性。
  • @uiTeam324 谢谢...让我感觉很愚蠢,但解决了我的问题。

标签: angular sass


【解决方案1】:

这个问题已经回答了好几次了。也请使用搜索并为问题和答案投票。

在 Stackoverflow 上: 1 2 3

在 Github 上的 AngularCLI 上: 1

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

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

"styles": ["src/styles.scss"],
"stylePreprocessorOptions": {
  "includePaths": ["src/assets/styles"]
},

【讨论】:

  • 我认为是在angular.json中已经添加了这一行
  • 嗯,是的,请参见上面的 cmets。 ng-test section should include its own includePaths。正如我的回答所说,错误是 includePaths 不包含样式。不知道为什么投了反对票,但这就是 Stackoverflow 的工作原理吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-17
  • 2021-08-11
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2013-09-26
相关资源
最近更新 更多