Gulp-sass没有在包含的文件中找到变量?

时间:2015-02-10 18:19:36

标签: node.js sass gulp gulp-sass

我有一个_variables.scss文件,其中声明了一个地图:

$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我引用了这个:

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

我有一个主要的scss文件为app.scss,@ import他们:

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

但是,gulp-sass会根据map-get抛出错误Error: invalid top-level expression

我在一个项目上使用gulp-ruby-sass并且它有效。但是,在这个项目中我们使用的是gulp-sass 1.1.0。我的任务是:

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中不起作用吗?或者我做错了什么?

1 个答案:

答案 0 :(得分:2)

半猜:导入工作正常,但node-sass不支持Sass 3.3附带的地图。

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

  

libsass库目前与大多数Sass用户将使用的3.2 Ruby Gem功能相同,并且对3.3语法几乎没有支持。虽然我们尽力维护与libsass的功能奇偶校验,但我们无法启用尚未在libsass中实现的功能。