【问题标题】:Trying to import angular material theming file in my custom theme but the file is not found尝试在我的自定义主题中导入角度材质主题文件,但找不到该文件
【发布时间】:2020-04-06 03:31:53
【问题描述】:

我尝试在我的自定义主题中导入角度材质主题文件,当我尝试生成 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 启动 web 应用程序时使用它,但仍显示错误消息。 错误信息用 webstorm 和 sass 显示

版本:

  • 角度:7.2.12
  • 材质:7.3.7
  • Sass:1.17.4 用 dart2js 2.2.0 编译

你有解决这个问题的想法吗?非常感谢。

【问题讨论】:

  • 你的依赖安装了吗?
  • 是的,它们已安装,因为如果我使用预构建主题,我可以使用它们。
  • 如果我猜测可能是 ng serve(angular cli) 他们将其替换为绝对路径。
  • 这可能是它编译并可以使用我的文件的原因,但即使这样,它仍然向我显示错误。

标签: angular sass angular-material2


【解决方案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 版本更新问题。

【讨论】:

    【解决方案2】:

    根据您的应用结构,您可以调整路径以定位 node_modules。

    如果你在 index.html 的同一个地方有 _variable.scss 的话

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

    【讨论】:

      猜你喜欢
      • 2018-02-25
      • 2018-10-08
      • 1970-01-01
      • 2019-06-11
      • 2018-08-18
      • 2018-01-02
      • 2019-07-06
      • 2018-09-25
      • 2018-12-07
      相关资源
      最近更新 更多