【问题标题】:How to use sass-loader in Angular?如何在 Angular 中使用 sass-loader?
【发布时间】:2020-01-13 11:38:31
【问题描述】:

如何在 Angular 中开启 sass-loader?

我尝试使用@import "theme.scss"; inside*.scss` 文件。

但我收到消息;

找不到或无法读取要导入的文件:theme.scss。

我不使用 webpack,只使用 tsconfig 和 angular.jon

文件 theme.scss 包含变量:

$border-radius: 10px;
$main: rgb(20, 100, 192);

【问题讨论】:

  • 您确定theme.scss 文件与您要导入的scss 文件位于同一目录中吗?
  • 根目录下没有这个文件。但我需要从项目中的任何地方获取此文件
  • 可能我可以在 tsconfig 中设置路径规则或如何设置?
  • 尝试修改 angular.json 项目 > projectName > Architects > build > options > ````"stylePreprocessorOptions": { "includePaths": [ "the/path" ] },```

标签: angular angular8


【解决方案1】:

.scss 文件导入到其他.scss 文件中

您可以使用资产路径中文件的相对路径在其他 .scss 文件中指定 .scss

您的默认资产路径应该是

"assets": [
              "src/favicon.ico",
              "src/assets"
            ]

angular.json 文件中定义。

例子:

  • 你有一个app.component.scss
  • 您的theme.scss 文件位于./src/assets/theme/theme.scss

然后你将它导入到app.component.scss 中,比如:

@import '../assets/theme/theme.scss';

指定样式预处理器选项以缩短导入

如果您想像您描述的那样缩短路径,只需将路径添加到angular.json 文件中的stylePreprocessorOptions

"architect": {
        "build": {
          ...
          "options": {
            ...
            "stylePreprocessorOptions": {
              "includePaths": [
                "./src/assets/style/theme"
              ]
            },
         },
         "test": {
           ...
           "options": {
             ...
             "stylePreprocessorOptions": {
               "includePaths": [
                 "./src/assets/style/theme"
               ]
             }
           }
         }
}

那么您应该能够包含您的文件,例如@import 'theme.scss';

描述更改后更新

我想你设置了错误的相对路径。因此,您需要像这样设置stylePreprocessorOptions

"includePaths": ["./src/lib"]

buildtest

设置好之后,你可以在里面放任何主题文件,比如:

./src/lib/theme.scss 并像 @import 'theme.scss'; 一样导入它

【讨论】:

  • 设置只用于构建,不用于服务选项?
  • 我得到同样的错误:File to import not found or unreadable: theme.scss.
  • ` "stylePreprocessorOptions": { "includePaths": ["projects/test-lib/src/lib/theme.scss"] },`
  • 我只需要使用一个文件theme.scss
  • 它应该与 angular.json 文件相关,而不是与您的项目文件夹相关
猜你喜欢
  • 2021-04-18
  • 2018-06-29
  • 2018-09-19
  • 2021-10-14
  • 2018-01-15
  • 1970-01-01
  • 2019-01-10
  • 2020-06-26
  • 2016-05-20
相关资源
最近更新 更多