当前位置: 首页 > 面试题库 >

捕获Browserify解析错误(独立选项)

公孙成仁
2023-03-14
问题内容

我正在使用gulp +
browserify来构建和打包我的JavaScript库。现在有一件事困扰着我:我正在运行一个带有livereload的简单服务器,以通过gulp进行开发。这可以正常工作,但是每当我的JavaScript包含语法错误时,browserify都会引发错误,导致服务器停止。

我使用的browserify代码(请注意,我已经添加了一个错误处理程序):

browserify("./src/main.js")
   .bundle({standalone: "SomeName", debug: false}).on('error', notify.onError({
            message: "Error: <%= error.message %>",
            title: "Failed running browserify"
    })
);

现在出现了有趣的部分:当我删除独立设置(并且我的js在语法上不正确)时,错误处理程序将触发。但是,当我使用此独立设置时,错误处理程序不会触发(导致通过gulp停止启动的服务器)

有人知道该如何处理吗?我总是可以在gulp中手动验证我的js文件,但想避免这种解决方法


问题答案:

on('error')事件仍被触发。但是,bro​​wserify流与其他Gulp流有点不同。在browserify的错误处理函数中,您需要显式调用this.emit("end")

gulp任务示例

var browserify = require('browserify');
var gulp = require('gulp');
var source = require("vinyl-source-stream");
var reactify = require('reactify');

gulp.task('browserify', function(){
  // create new bundle
  var b = browserify();
  // add transform if you want
  b.transform(reactify);
  // add file to browserify
  b.add("./src/main.js");
  // start bundling
  return b.bundle()
    .on('error', function(err){
      // print the error (can replace with gulp-util)
      console.log(err.message);
      // end this stream
      this.emit('end');
    })
    .pipe(source('main.js'))
    // pipe other plugin here if you want
    .pipe(gulp.dest('./dist'));
});

错误函数处理程序可防止gulp崩溃,this.emit("end")停止当前流,而不是让其运行到下一个管道。事件处理程序还可以捕获转换插件中的错误。

有关更多信息,您可以在这里阅读http://truongtx.me/2014/07/15/handle-errors-while-using-gulp-
watch/



 类似资料:
  • 我是Stripe Connect的新手,使用stripe Connect独立构建市场应用程序,并要求用户输入自定义金额以支付其他用户。我使用的旧表单运行良好,但一旦我更改为新表单,我的:source= 无效的源对象:必须是字典或非空字符串 我原来的charges_controller.rb 然后我从条带配方中添加了自定义数量的方法: 我还修改了表单,并在收费/new.html.erb中添加了jav

  • 问题内容: 从Java 6 模式文档中: 特殊构造(非捕获) X X ,作为非捕获组 … X X ,作为独立的非捕获组 之间和有什么区别?在这种情况下, 独立 意味着什么? 问题答案: 这意味着分组是原子的,它会丢弃匹配组的回溯信息。因此,该表达式是所有格;即使这样做是正则表达式整体成功的唯一途径,它也不会退缩。它是“独立的”,即它不会通过回溯与正则表达式的其他元素协作来确保匹配。

  • 我无法用axios捕捉错误响应。怎么做?我用的是: 我看到ajax请求的结果有400个状态代码,响应主体看起来像(Django后端)。没关系,我已经准备好在catch处理程序中处理这些错误了。 但是它们转到成功处理程序。为何如此?我在控制台中看到以下输出: 成功处理程序接收axios错误对象作为结果。为什么会这样,下一步该怎么办?此错误对象不包含任何有用信息。 UPD。实际上,错误对象包含有用的信

  • 我有一个应用程序使用了log4j1.2.17,现在我想把它更改为log4j2。所以我更改了pom.xml(我确信我已经删除了任何依赖项中的log4j1),添加了log4j2.xml。log4j2工作得很好,它记录了我想要的信息。 我查看log4j的问题。LOG4J2-2026似乎可以解决这个问题,但是我使用的log4j2版本已经是2.9.1了。我不知道是什么原因造成这个错误。

  • null 因此,具有外部依赖关系的作业可以正常工作,但是UDF会产生上面的错误。我还试图将我的应用程序jar(其中包含驱动程序和spring代码以及worker中已经存在的所有其他依赖项)添加到worker中的dependencies文件夹中,但仍然会产生错误。还试图将其放置在worker中与驱动程序相同的位置,并使用“spark.jars”将其位置添加到sparkConf,但没有成功。有什么建议

  • 我现在必须学习通过fire base编写移动应用程序web服务。我点击了这个链接:https://firebase-php.readthedocs.io/en/stable/ 在我的核心网站中,我创建web服务文件夹,然后创建我的fire。php文件。这个文件代码在这里, 我得打电话给我的支持档案:https://github.com/kreait/firebase-php/ 但我还是得到了一个: