util.js中的Angular 6 SCSS编译错误
我刚开始使用Angular 6,使用Angular CLI并熟悉文件结构。我打算使用SCS创建一个单一的全局样式表。但是,当我编译时,我收到了错误: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.
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…
,以避免添加运行时依赖项。