私は and を使用gulp-notify
して、gulp でエラーをスローしてビルドプロセス全体を停止する前に、gulp-plumber
エラーをキャッチして通知します。gulp-sass
ただし、 で示されるエラーgulp-notify
は特に役に立ちません。エラーのあるファイルへのパス全体が含まれています。ファイルへのパスが何であるかを知っている可能性が最も高いので、ファイル名と行番号 (および追加されたが必須ではないボーナスとして列番号) と実際のエラーメッセージを知る必要があるだけです。これが私のコードです:
gulp.task('styles', function () {
var onError = function(err) {
notify.onError({
title: "Gulp",
subtitle: "Build Error!",
message: "<%= error.message %>",
sound: "Beep"
})(err);
this.emit('end');
};
gulp.src('assets/styles/source/style.scss')
.pipe(plumber({errorHandler: onError}))
.pipe(sass({
style: 'compressed',
errLogToConsole: false
}))
.pipe(gulp.dest('assets/styles/build'))
.pipe(autoprefixer({
browsers: ['last 2 versions', 'ie 9', 'ios 6', 'android 4'],
cascade: false
}))
.pipe(gulp.dest('assets/styles/build'))
.pipe(minifyCSS({
keepSpecialComments: '*'
}))
.pipe(gulp.dest('./'))
.pipe(reload({stream: true}));
});
もっとあります(gulp-watch
、、、browsersync
いくつかのJSのものなど)が、問題を解決するために必要なのは上記だけだと思います。そうでない場合はお知らせください!
私の質問は、エラー メッセージを変更して、ファイル名、行番号、およびエラー メッセージ (例: _header.scss:17 - 無効なプロパティ名) のみを表示するにはどうすればよいですか? 現在使用error.message
していますが、表示したいものを取得するために使用できるタグが見つかりません。
ありがとうございました!