找不到或无法读取要导入的 Angular CLI SCSS 文件

Posted

技术标签:

【中文标题】找不到或无法读取要导入的 Angular CLI SCSS 文件【英文标题】:Angular CLI SCSS File to Import not found or unreadable 【发布时间】:2019-04-04 19:27:12 【问题描述】:

尝试导入 variables.scss 文件并不断收到构建失败错误:

ERROR in ./src/styles.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js
!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/styles.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

undefined
^
      File to import not found or unreadable: ~styles-variables.scss.
      in C:\Users\JRYoung\Projects\ods\webclient\src\styles.scss (line 3, column 1)

在 src/styles 我有

/* You can add global styles to this file, and also import other style files */

@import 'styles-variables.scss';
@import '~bootstrap/scss/bootstrap.scss';

$fa-font-path: "~font-awesome/fonts";
@import '~font-awesome/scss/font-awesome.scss';

在 src/styles-variables.scss 我有

$grid-breakpoints: (
  xs: 0,
  sm: 576px,
  md: 768px,
  lg: 992px,
  xl: 1200px
);

$accent-color: #006a55;

@import '~styles-variables.scss' 发出构建错误,而 @import 'styles-variables.scss' 没有。

另外,当我将 style-variables.scss 导入另一个模块中的样式时,我必须使用相对路径 @import "../../../styles-variables.scss"; 才能构建它。我的理解是波浪号应该解决它而不必包含路径。

~ 似乎在解析路径时遇到了问题,但它确实解决了 bootstrap 和 font-awesome。关于我做错了什么有什么想法吗?

Angular CLI: 7.0.3
Node: 8.11.3
OS: win32 x64
Angular:
...

Package                      Version
----------------------------------------
@angular-devkit/architect    0.10.3
@angular-devkit/core         7.0.3
@angular-devkit/schematics   7.0.3
@schematics/angular          7.0.3
@schematics/update           0.10.3
rxjs                         6.3.3
typescript                   3.1.3

【问题讨论】:

【参考方案1】:

如果您使用 google 搜索到达此处,请确保您的文件名完全匹配,即区分大小写。

对我来说,它在我的本地构建良好,但在管道中失败了。

【讨论】:

【参考方案2】:
    scss:您的文件夹名称,用于存储您的所有 scss 文件。 vars:你的 scss 文件名

你只是写在顶部:

@import '../scss/vars';

【讨论】:

【参考方案3】:

Angular 6 及更高版本的波浪号似乎存在问题-请参阅here

相反,我建议在您的 angular.json 文件中将以下行添加到此项目的构建选项中:

"stylePreprocessorOptions": 
  "includePaths": [
    "./src/styles-variables.scss"
  ]

然后你应该可以写:

@import "styles-variables"

在所有使用这些变量的文件的顶部没有问题。

【讨论】:

我认为includePaths 应该只包含文件夹,所以它应该是"includePaths": ["./src"] 而不是"includePaths": ["./src/styles-variables.scss"]。不应该吗?

以上是关于找不到或无法读取要导入的 Angular CLI SCSS 文件的主要内容,如果未能解决你的问题,请参考以下文章

webpack 错误:找不到要导入的文件或无法读取:波旁威士忌,如何解决?

错误:找不到要导入的文件或无法读取:fancy-buttons

找不到或无法读取要导入的文件:指南针

错误:找不到要导入的文件或无法读取:引导电子邮件

错误:找不到要导入的文件或无法读取:~bootstrap/scss/bootstrap

Rails 3 应用程序中的 Sass 导入错误 - “找不到或无法读取要导入的文件:指南针”