Sass watch检测到更改但未编译为CSS。

8
当我输入命令 sass --watch app.sass:app.css 后,终端显示已检测到sass文件的更改,但未编译为css。我的代码中使用了Bourbon,所以所有的.scss和.sass文件都是通过mixin导入的。

例如:

 >>> Sass is watching for changes. Press Ctrl-C to stop.
 >>> Change detected to: css/2-modules/top-nav.scss

你确定top-nav.scss文件或者top-nav.scss可能引入的任何文件中没有错误吗? - Blake Frederick
没有错误,实际上我已经对项目中的其他.scss文件进行了各种更改以测试编译器,但它仍然只检测到对.scss文件所做的更改而不编译它们。 - tonyynot
检查config.rb文件,也许它们被存储在错误的目录中。 - maioman
7个回答

7

确保你要保存的文件名为_filename.scss的文件已经被正确地导入到mainfile.scss中。如果你没有导入_filename.scss,它会检测到变化但不会编译。


2
我也遇到了同样的问题!在我的情况下,是因为有几个@imports被列出来了,就像这样:

我也有同样的问题!在我的情况下,是因为有几个@imports被列出来了,就像这样:

@import 'colors';
@import 'fonts';
@import 'size';

当我将它改为这样后,所有的东西都重新开始工作了:"最初的回答"
@import 'colors', 'fonts', 'size';

尽管这并不是必需的:
"Sass导入与CSS导入具有相同的语法,只是它们允许多个导入用逗号分隔,而不需要每个导入都有自己的@import。" - sass-lang.com/documentation

在我的情况下,它只能定位到第一个: SassError: 找不到要导入的样式表。 @import "../assets/scss/elements/ie","elements/defaults"; - Asef Hossini

0
你确定所有的partials都被导入到app.scss中了吗?我曾经遇到过同样的问题,后来才发现我修改的partial文件(_custom.scss)实际上并没有被main.scss导入。

0
我之前也遇到了同样的问题,后来发现我的脚本末尾没有包含‘-w’选项。只有加上这个选项,脚本才能持续监测文件变化并重新编译 Sass 文件。
具体地说,你可以在"scripts"中这样设置:
"compile:sass": "node-sass sass/main.scss css/style.css -w"

0

在你的文件夹中检查 Config.rb 文件。 如果没有它,你每次都要按 Ctr c 并通过这个命令 sass --watch scssname:cssname。

然后你可以在 css 中找到你的代码。


0
  1. 在你的样式文件夹中创建一个以 "_" 开头的 file.scss 文件。例如:_fileName.scss

  2. 在你的主要 scss 文件开头导入它。例如:

    // 在 **mystyle.scss** 中   
    写:**@import "fileName"**(没有下划线)
    
  3. 在终端中运行你的 Sass。例如:

    sass mystyle.scss:mystyle.css --watch
    

0
创建正确命名的 scss 文件(确保有下划线“_”)
_custom.scss

main.scss 中导入 _custom.scss (无需下划线)

// main.scss
      @import "custom";

编译代码

sass --watch main.scss main.css

这将正确地编译代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接