在有效CSS上运行node-sass时,出现以下错误。
SassError: Invalid CSS after "html {": expected "}", was "{"
on line 9 of C:\Users\<user>\Documents\<project>\styles\index.sass
\>> html { {
------^
我不明白为什么。
这是sass文件
@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Poppins:400,600,700&display=swap');
$family-primary: "Poppins", sans-serif;
html {
background-color: #212121;
}
@import
包括Google字体样式表。这里可能发生了几件事。@import
与SCSS一起使用时,您会得到一个样式表复制到您的主要样式。由于这种情况在编译完成之前发生,因此导入的CSS中的任何错误都会影响编译器解析有效CSS的能力。换句话说,您的CSS是完全有效的,但是您不知道所导入的CSS中可能会导致最终结果损坏的内容。
@import
的CSS文件在运行时发出新的HTTP请求,因此您可以采用此方法。为此,您需要从SASS解析器中排除导入。 SASS没有很好的方法来执行此操作,但是您可以尝试将整个行放在引号中,以使SASS忽略它。"@import url('https://fonts.googleapis.com/css?family=Poppins:400,600,700&display=swap');"
[不幸的是,像这样导入的CSS是运行时渲染块。因此,如果Google CSS由于某种原因而无法加载(例如在中国被封禁),它将导致整个渲染过程停止,直到超时。
周围不是很好。
在这种情况下,最好的选择可能是在HTML文档中添加另一个CSS调用。是的,您收到另一个请求,但这不会阻止渲染(这就是为什么您会获得未样式化文本的闪烁的原因),并显着简化了设置。<head>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:400,600,700&display=swap">
<link rel="stylesheet" href="mySiteStyles.css">
</head>