2

これは、現在プラグインgulp-runを使用している Gulp.js を使用して、libsass "sassc" バイナリ (以下に示す) を直接実行するためのセットアップです。私はノードやガルプの専門家ではないので、これはかなりの試行錯誤の末であり、まだいくつかの問題があります。

バイナリは通常、sassc入力ファイルと出力ファイルの引数 (例: )を受け取りますが、accept の引数を指定して../bin/sassc file.scss > file.css実行することもできるため、ここにあるファイルをそのまま渡すことができます。私が正しく理解すれば、これらの条件下では、その結果を として正常に渡すことができるようです。同じディレクトリに「test.css」というファイルが書かれています。gulp-run コマンドの「verbosity」設定をそのままにしないと、結果の CSS がターミナルに出力されることに注意してください。ここではそれが抑制され、結果がチェーンに渡されます。ただし、 gulp-autoprefixerなどのプロセスの追加に成功していないため、これでも適切な出力ストリームが作成されていないようです。-sstdingulp.src()stdoutこの後インライン。さらに、stderr (存在する場合) をログ ファイルにキャプチャする方法が必要です (現在、コンソールに出力されるエラーがある場合)。

任意のガイダンスをいただければ幸いです。また、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 ) が stdout のキャプチャに役立つかもしれません

于 2015-02-05T19:36:43.100 に答える