2

我有一个声明地图的 _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,它 @imports 它们:

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

Error: invalid top-level expression但是,gulp-sass 会根据该 map-get引发错误。

我在一个项目中使用 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 中不起作用吗?还是我做错了什么?

4

1 回答 1

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 中实现的功能。

于 2015-02-10T18:33:28.043 回答