Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
util.js中的Angular 6 SCSS编译错误_Angular_Sass - Fatal编程技术网

util.js中的Angular 6 SCSS编译错误

util.js中的Angular 6 SCSS编译错误,angular,sass,Angular,Sass,我刚开始使用Angular 6,使用Angular CLI并熟悉文件结构。我打算使用SCS创建一个单一的全局样式表。但是,当我编译时,我收到了错误: ERROR in ./src/app/top-bar/top-bar.component.scss Module build failed (from ./node_modules/sass-loader/lib/loader.js): // Copyright Joyent, Inc. and other Node contributors.

我刚开始使用Angular 6,使用Angular CLI并熟悉文件结构。我打算使用SCS创建一个单一的全局样式表。但是,当我编译时,我收到了错误:

ERROR in ./src/app/top-bar/top-bar.component.scss
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

// Copyright Joyent, Inc. and other Node contributors.
^
Invalid CSS after "...N THE SOFTWARE.": expected 1 selector or at- 
rule, was "var formatRegExp = "
in /Users/me/Documents/projects/node_modules/util/util.js 
(line 1, column 1)
我的自定义scss文件夹位于
src/assets/scss

我的顶栏组件位于
src/app/top bar

我试图访问
src/app/top bar/top bar.component.scss
中的
src/assets/scss/app.scss
,并收到上述错误

我已经尝试了多种方法导入文件
@import“~/assets/scss/app.scss”
@import./assets/scss/app.scss”包含必要的变量,但我不能确定我做错了什么,因为错误似乎很模糊,除了核心工具之外,没有指向任何特定的文件


如果有人能解释一下,即使是在调试过程中出现这样的错误,也会有很大帮助。

我也遇到了同样的问题。根本原因是webpack(由@angular/cli使用)使用的SCSS文件加载程序/解析器中存在错误,该程序除了加载SCSS文件外,还加载JS文件

错误在于JS文件优先于SCSS文件。GitHub的问题在于:

坏消息是,这个问题已经公开了8个月,而且修复它的请求还没有被接受

好消息是,您可以通过使用与
node\u modules
子目录中的JS文件名不匹配的SCSS文件名来解决这个问题

例如,我有一个名为
\u util.SCSS
的SCSS文件,因此我的错误是:

  Invalid CSS after "...N THE SOFTWARE.": expected 1 selector or at-rule, was "var formatRegExp = "      
     in C:\src\project\node_modules\util\util.js (line 1, column 1)

我的修复方法是将我的SCSS文件重命名为
\u sass-util.SCSS
。希望这能有所帮助。

正如@crimbo所指出的问题所在,但我无法重命名文件,因为我使用第三方库(Foundation 6

我已降级为sass-loader@6.0.7

npm install --save-dev sass-loader@6.0.7
它适用于我最初使用sass的Angular 7.1.4-loader@7.1.0

根据发行说明,最重要的变化是:

  • 放弃正式的node 4支持
  • 这稍微改变了解析算法。不应在正常使用中中断,但可能在复杂配置中中断
  • sass加载程序现在在运行时抛出错误,如果对等依赖项错误,则拒绝编译。这可能会破坏npm的对等依赖警告被忽略的应用程序
对于我的案例来说,这些都不是问题

Angular7+(无法还原sass加载程序版本)和Foundation6+&sass组合的解决方法:


不从.SCSS文件中的基础中导入UTIL/UTIL<代码>,但分开的包组合(断点、颜色、方向、Flex、Maxin、Mixin、选择器、排版、单元、值)基于您需要的或使用代码< > /UTIL/UTIL<代码>。另外,
foundation.scss
settings.scss
将util导入其中,因此在sass加载程序修复之前,应避免使用或在本地修补此文件。

您是否
npm安装节点sass
?一切顺利吗?是的,没问题。实际上,我在创建应用程序时使用了SCSS选项。这给了我一个基本的scss文件。然而,我也尝试安装了
节点sass
,看看是否是这样。
/
在CSS中无效,但在
SCSS中它是正常的
您的e在这方面失败了。这让我觉得你的SCS没有编译我知道。我的问题是,对于典型的SCSS错误,我希望源方向上有一个点。我甚至尝试了一个带有2条规则的简单SCSS文件,但仍然得到了这个相当模糊的错误。你能添加你的
angular.json
文件内容吗。可能需要将其更改为
npm安装--save dev…
,以避免添加运行时依赖项。