我比.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
语法还是我错过了某种配置设置?非常感谢!
答案 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。