我已经设置了node.js gulp文件以使用babel转换,允许我在浏览器脚本中使用ES6功能。
当我向输入文件添加故意语法错误时,尽管已经订阅了“错误”,但我看不到babelify输出的任何错误消息。 Using Babel with Browserify指南中建议的事件。
语法无效的示例:
immmmport $ from 'jquery';
而不是在CLI中显示错误,它只是默默地失败。
以下是我配置gulp任务的方法:
gulp.task('build', () => {
browserify(options)
.transform(babelify)
.add(sourceFilePath)
.bundle()
.pipe(source(outputFileName))
.pipe(buffer())
.pipe(gulpif(!argv.production, sourcemaps.init({ loadMaps: true })))
.pipe(gulpif(argv.production, streamify(uglify())))
.pipe(gulpif(!argv.production, sourcemaps.write('/')))
.pipe(gulp.dest(outputDirName));
})
我错过了这里的任何步骤吗?
答案 0 :(得分:3)
这个问题的根源是我需要添加以下行:
.on("error", err => { gutil.log("Browserify Error", gutil.colors.red(err.message)) })
所以我有这个:
gulp.task('build', () => {
browserify(options)
.transform(babelify)
.add(sourceFilePath)
.bundle()
.on("error", err => { gutil.log("Browserify Error", gutil.colors.red(err.message)) })
.pipe(source(outputFileName))
.pipe(buffer())
.pipe(gulpif(!argv.production, sourcemaps.init({ loadMaps: true })))
.pipe(gulpif(argv.production, streamify(uglify())))
.pipe(gulpif(!argv.production, sourcemaps.write('/')))
.pipe(gulp.dest(outputDirName));
})
以下页面可用于诊断此问题: