正确配置Laravel 5 Elixir以编译.scs文件



我正试图使用Laravel elixir编译一个简单的sass文件app.scss,该文件位于我的resources > assets > sass目录中。我安装了node、gump和elixir,我的gulpfile.js文件看起来像这样。。。

var elixir = require('laravel-elixir');
/*
 |--------------------------------------------------------------------------
 | Elixir Asset Management
 |--------------------------------------------------------------------------
 |
 | Elixir provides a clean, fluent API for defining some basic Gulp tasks
 | for your Laravel application. By default, we are compiling the Less
 | file for our application, as well as publishing vendor resources.
 |
 */
elixir(function(mix) {
    mix.sass('app.scss');
});

然而,当我狼吞虎咽地奔跑时,我会出现一些奇怪的错误。我第一次尝试的是一个简单的sass文件,没有includes。。。

body {
    padding-top: 40px;
}
body, label, /checkbox label {
    font-weight: 300px;
}

我从我的终端收到这个错误。。。

[14:44:40] Starting 'default'...
[14:44:40] Starting 'sass'...
[14:44:41] Finished 'default' after 1.45 s
[14:44:41] gulp-notify: [Laravel Elixir] Error: invalid top-level expression
[14:44:41] Finished 'sass' after 1.47 s
[14:44:41] gulp-notify: [Error running notifier] Could not send message: not found: notify-send

当我将@include 'pages/home';添加到app.scss文件的顶部时(并且pages > home.scss确实存在),我会得到以下错误。。。

[14:38:03] Starting 'default'...
[14:38:03] Starting 'sass'...
[14:38:04] Finished 'default' after 1.42 s
[14:38:04] gulp-notify: [Laravel Elixir] Error: invalid name in @include directive
[14:38:04] Finished 'sass' after 1.44 s
[14:38:04] gulp-notify: [Error running notifier] Could not send message: not found: notify-send

我知道通知程序错误是因为我在虚拟机中运行它,所以这不会困扰我,但之前的错误导致根本没有编译sass。

如果有帮助的话,我正在Mac上运行Laravel 5,OSX Mavericks使用homes作为环境。

奇怪的是,我以前做过这个工作,我刚刚开始了一个新的Laravel项目,突然之间它就不起作用了。有人知道发生了什么事吗?

第一个错误可能是由body, label, /checkbox label {中的/引起的。删除斜线,它应该可以工作。

第二个原因是,当您实际想要@import时,您正在使用@include

@import用于包含其他sass/css文件。@include用于使用mixin。

最新更新