我有一个_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中不起作用吗?或者我做错了什么?
答案 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中实现的功能。