2

这是使用 Gulp.js 直接运行 libsass "sassc" 二进制文件的设置(如下所示),我目前正在使用插件gulp-run。这是经过多次修改,因为我根本不是节点或 gulp 专家,它仍然存在一些问题。

sassc二进制文件通常接受输入和输出文件参数(例如../bin/sassc file.scss > file.css),但它也可以使用参数来运行accept -sstdin因此可以从gulp.src()此处传递文件。如果我理解正确,似乎在这些条件下,成功地将其结果传递为。stdout一个名为“test.css”的文件被写入同一目录中。请注意,如果没有 gulp-run 命令的“详细”设置,生成的 CSS 将输出到终端。在这里,它被抑制,结果被传递到链条上;但是,这似乎仍然没有创建正确的输出流,因为我没有成功添加诸如gulp-autoprefixer 之类的进程在此之后内联。此外,我需要一种将标准错误(如果有)捕获到日志文件的方法(现在如果它在控制台中输出错误)。

任何指导表示赞赏。我也可能在 gulp-run 中使用了错误的插件。还有gulp-execgulp-shell,可能还有其他,但我真的不知道要寻找什么区别。

var gulp         = require('gulp');
var run          = require('gulp-run');
var rename       = require("gulp-rename");

gulp.task('sassc', function () {
  gulp.src('test.scss')
    .pipe(run('../bin/sassc -s', {verbosity: 1}))
    .on('error', function (err) { this.end(); })
    .pipe(rename(function (path) { path.extname = ".css"; }))
    .pipe(gulp.dest('.'))
});

gulp.task('watch', function () {
    gulp.watch('test.scss', ['sassc']);
});

gulp.task('default', ['watch']);
4

1 回答 1

0

也许 gulp-log-capture (https://www.npmjs.com/package/gulp-log-capture)将有助于捕获标准输出

于 2015-02-05T19:36:43.100 回答