【问题标题】:Is babel supposed to throw syntax errors?babel 应该抛出语法错误吗?
【发布时间】:2015-11-12 10:17:56
【问题描述】:

我已经设置了一个 node.js gulp 文件来使用 babel 转换,允许我在浏览器脚本中使用 ES6 功能。

当我向输入文件添加故意的语法错误时,尽管按照Using Babel with Browserify 指南中的建议订阅了“错误”事件,但我没有看到 babelify 输出的任何错误消息。

无效语法示例:

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));
})

我是否遗漏了这里的任何步骤?

【问题讨论】:

    标签: node.js browserify babeljs


    【解决方案1】:

    这个问题的根源是我需要添加以下行:

    .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));
    })
    

    以下页面有助于诊断此问题:

    https://github.com/substack/node-browserify/issues/1044

    【讨论】:

      猜你喜欢
      • 2017-12-13
      • 2011-01-05
      • 2016-10-31
      • 2023-03-20
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多