gulp-notify - 获取文件名,不是完整路径,有错误
gulp-notify - get file name, not whole path, with error
我正在使用 gulp-notify
and gulp-plumber
to catch any errors from gulp-sass
并在它在 gulp 中抛出错误并停止整个构建过程之前通知我。但是,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 - 无效 属性 name)? 目前我正在使用 error.message
但我找不到更多可用于获取我想要显示的内容的标签。
谢谢!
我是这样解决这个问题的:
.pipe(sass(
({
style: 'compressed',
errLogToConsole: false,
onError: function(error) {
notify({
title: "SASS ERROR",
message: "line " + error.line + " in " + error.file.replace(/^.*[\\/]/, '') + "\n" + error.message
}).write(error);
}
})
)
)
我还注意到我只能提供一个换行符“\n”,所以我无法将我想要的每条信息拆分成一行。
我正在使用 gulp-notify
and gulp-plumber
to catch any errors from gulp-sass
并在它在 gulp 中抛出错误并停止整个构建过程之前通知我。但是,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 - 无效 属性 name)? 目前我正在使用 error.message
但我找不到更多可用于获取我想要显示的内容的标签。
谢谢!
我是这样解决这个问题的:
.pipe(sass(
({
style: 'compressed',
errLogToConsole: false,
onError: function(error) {
notify({
title: "SASS ERROR",
message: "line " + error.line + " in " + error.file.replace(/^.*[\\/]/, '') + "\n" + error.message
}).write(error);
}
})
)
)
我还注意到我只能提供一个换行符“\n”,所以我无法将我想要的每条信息拆分成一行。