7

我更喜欢.sass语法而不是.scss语法(因为它更好,让战争开始吧!),所以这就是我想要使用的。然而,当尝试.sass使用 Elixir 编译文件时,它似乎在尝试使用scss语法进行编译。

elixir(function(mix) {
  mix.sass('styles.sass');
});

styles.sass什么时候

body
  background: black

我收到以下错误:

$ gulp
[17:54:43] Using gulpfile ~/sites/skynet/gulpfile.js
[17:54:43] Starting 'default'...
[17:54:43] Starting 'sass'...
[17:54:43] Finished 'default' after 185 ms
[17:54:43] gulp-notify: [Laravel Elixir] Error: invalid top-level expression
[17:54:43] Finished 'sass' after 198 ms

但是改变styles.sass(仍然保持.sass扩展),

body {
  background: black;
}

我得到一个成功的编译。Elixir 只编译scss语法还是我缺少某种配置设置?非常感谢帮助!

4

2 回答 2

2

感谢@mul14,我更深入地研究了 gulp-sass 所依赖的不同库。github 上的问题是最终导致有人成功支持缩进语法并将其合并到 libsass 中的讨论。

在查看了 node-sass 的文档后,我找到了一个打开缩进语法的选项。看看 Elixir 的 sass 成分参数,这对我有用!

elixir(function(mix) {
  mix.sass('styles.sass', false, { indentedSyntax: true });
});

所以,最后是配置问题。全球缩进语法用户的好消息!

于 2015-02-07T02:29:13.233 回答
0

那是因为 Laravel Elixir 使用 gulp -sass。而 gulp-sass 的内部则使用node-sass。node-sass 使用libsass,它不支持 .sass 文件https://github.com/sass/libsass/issues/16

您可以使用gulp -ruby-sass将 .sass 编译为 css。或者使用laravel-elixir-ruby-sass

于 2015-02-06T11:08:35.090 回答