Laravel Elixir Sass编译 - .sass文件

时间:2015-02-06 10:07:49

标签: laravel sass laravel-elixir

我比.sass语法更忠实于.scss语法(因为它更好,让战争开始!),这就是我正在尝试使用的内容。但是,在尝试使用Elixir编译.sass文件时,似乎正在尝试使用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语法还是我错过了某种配置设置?非常感谢!

2 个答案:

答案 0 :(得分:2)

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

在查看node-sass的文档后,我找到了option来打开缩进语法。看看Elixir的sass成分论点,这对我有用!

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

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

答案 1 :(得分: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