node.js:抑制require()对解析错误的回显到stderr
node.js: suppress require()'s echoing of parse errors to stderr
node.js 10.26将正确抛出一个错误,当你试图要求一个文件不是有效的javascript(或JSON)。
我的问题是它也输出到stderr:
broken .js -知道是破碎的javascript文件
,,>Z>badfile!=-csa&asd;'asdl ds]=}{ADS}DAS:LMFSV'
. js
try {
var borken = require('./borken');
} catch (e) {} finally {
console.log('finally!');
}
预期$ node test.js
finally!
实际$ node test.js
/path/to/borken.js:1
(function (exports, require, module, __filename, __dirname) { asd;'asdl
^^^^^
finally!
前三行输出到stderr(当node test.js 2> /dev/null
抑制它们时运行)。
有办法摆脱他们吗?
我到目前为止所做的:我在跟踪源代码的同时进行调试,并将罪魁祸首缩小到:
lib/module.js: 439
var compiledWrapper = runInThisContext(wrapper, filename, true);
runInThisContext
是在lib/vm.js中定义的,不幸的是它是一个c++包装器,所以我不能真正遵循那里发生的事情。我想我正在寻找一个神奇的"不要发送垃圾邮件"标志或任何关于这在任何最新版本中被修复的知识。
显然这个问题已经在开发分支(0.11.x)中修复了,但在最新的稳定版本(0.10.29)中没有修复
Github问题:语法错误被打印为stderr,即使使用try/catch #6920
相关文章:
- 警告处理为错误这里有什么问题
- 如何将stdout重定向到stderr
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- 静态数据成员的问题-修复链接错误会导致编译器错误
- node.js:抑制require()对解析错误的回显到stderr