尝试在我的自定义主题中导入角度材质主题文件,但找不到该文件

时间:2019-04-05 23:02:43

标签: angular sass angular-material2

我尝试在自定义主题中导入角度材质主题文件,当尝试生成CSS代码时出现错误:

$ sass src/_custom-theme.scss
Error: Can't find stylesheet to import.
  ╷
2 │ @import '~@angular/material/_theming.scss';
  │         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ╵

这是文件的第一行。我也尝试使用以下行,但出现相同的错误:

@import '~@angular/material/theming';

如果我尝试这样导入文件,它将起作用:

@import '../node_modules/@angular/material/theming';

但是奇怪的是,通过导入这样的预构建主题,只是为了进行测试,

@import '~@angular/material/prebuilt-themes/deeppurple-amber.css'

WebStorm设法生成css并在使用ng serve启动webapp时使用它,但仍显示错误消息。 错误消息显示为webstorm和sass

版本:

  • 角度:7.2.12
  • 材料:7.3.7
  • Sass:使用dart2js 2.2.0编译的1.17.4

您有解决此问题的想法吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

如果您使用的是Angular 9,并使用ng add @angular/material添加了@ angular / material包,则可能会出现此问题。这是因为ng add命令使用的软件包适用于Angular的较早版本,并且到目前为止尚未与v9兼容。可以通过npm install @angular/material命令安装来解决此问题。您可能需要先卸载该软件包。如果仍然不起作用,请删除node_modules文件夹和package-lock.json并运行npm install

由于这是一篇过时的文章,所以我假设这是在Angular v8版本附近发生的,大概会导致相同的行为,直到通过npm add命令将ngrx更新为支持v8为止。相同的解决方案也可以解决Angular版本更新的将来版本的问题。

答案 1 :(得分:0)

根据您的应用程序结构,您可以调整路径以找到node_modules。

如果在index.html的同一位置上有_variable.scss,请这样做

@import './../node_modules/@angular/material/theming';