2015-02-10 41 views
2

我有一個地方的地圖被宣佈爲_variables.scss文件:Gulp-sass沒有在包含文件中找到變量?

$chord1: (
    color1: rgb(0, 155, 223), 
    color2: rgb(114, 191, 68), 
    color3: rgb(207, 9, 137), 
    color4: rgb(62, 83, 164) 
); 

$chord: $chord1; 

我有第二個文件。 _globals.scss其中I引用此:

.myClass { color: map-get($chord, color1); } 

我有一個主SCSS文件作爲app.scss,其@imports它們:

@import 'colors'; 
@import 'globals'; 

然而,吞掉-SASS引發錯誤Error: invalid top-level expression基於該地圖上-得到。

我在一個項目上使用gulp-ruby-sass,它工作。但是,在這個項目中我們使用了gulp-sass 1.1.0。我的g task任務是:

gulp.task('styles', function() { 
    return gulp.src('./app/assets/sass/app.scss') 
    .pipe(plumber()) 
    .pipe(sass({ style: 'expanded' })) 
    .pipe(gulp.dest('./app/assets/css')) 
    .pipe(reload({stream: true})); 
}); 

這樣的事情是不是在gulp-sass中工作?或者我做錯了什麼?

回答

2

一半猜測:導入工作正常,但node-sass不支持Sass 3.3附帶的映射。

https://github.com/sass/node-sass#reporting-sass-compilation-and-syntax-issues

的libsass庫不是目前與3.2紅寶石寶石功能奇偶校驗,大多數薩斯用戶將使用,並擁有小到無的3.3語法的支持。雖然我們盡力保持與libsass的功能相同,但我們無法啓用尚未在libsass中實現的功能。

+0

可能。我刪除了我的地圖並編譯。 – Steve 2015-02-10 18:37:37