在Gulp或Grunt上运行Dart Sass

时间:2017-03-24 15:18:27

标签: sass gulp gruntjs

Ruby Sass正在消失(除非新的维护者接受它)并且正在被Dart实现取代,根据这篇文章:

Announcing Dart Sass

有没有人知道Gulp或Grunt是否有插件正在进行中?

3 个答案:

答案 0 :(得分:3)

几个月前,我正在做一个个人项目,并且想要吞下dart-sass所以我做了自己的基本功能,直到其他人出现并做了更好的事情。我不记得当时dart-sass的版本是什么,但无论如何这里都是函数。它只是坐在gulp文件中。

function sassify(options) {
  return through.obj(function (file, enc, cb) {
    options = options || {};
    options.file = file.path;
    // if (file.sourceMap) {
      // options.sourceMap = true;
      // options.outFile = output.path('css');
    // }
    sass.render(options, function (err, result) {
      if (err) {
        console.error("Sass Error: " + err.message);
      }
      else {
        file.contents = result.buffer;
        // if (file.sourceMap) {
          // applySourceMap(file, result.map);
        // }
      }
      cb(err, file);
    });
  });
}

当时,dart-sass还没有源地图,所以我只是插入了这些内容,并在它们发布时对其进行了评论。 我用这种方式使用了这个功能:

gulp.task('build:css', function () {
  gulp.src(input.sass)
    // .pipe(sourcemaps.init())
    .pipe(sassify())
    // .pipe(sourcemaps.write(output.path('cssmap')))
    .pipe(concat(output.path('css')))
    .pipe(gulp.dest('.'));
});

答案 1 :(得分:1)

从gulp使用dart-sass应该很简单:

https://www.npmjs.com/package/dart-sass#from-npm

npm install dart-sass

var sass = require('dart-sass');
sass.render(...)

虽然不知道咕噜声。

答案 2 :(得分:0)

自从Ruby Sass被弃用并首次正式发布Dart Sass以来,我最近向npm注册表提供了grunt-dart-sass包,看起来其他用户提供了gulp-dart-sass。由于这些是用户提供的软件包,它们不是由Dart Sass自己创建的,而是仍然与Dart Sass API接口。希望grunt-contrib-sass项目也能尽快升级他们的包以使用Dart Sass。