ES6导入error handling
我目前正在使用Babel。
我以前用以下方法做了以下操作:
try { var myModule = require('my-module'); } catch (err) { // send error to log file }
但是,当试图通过import
来做到这一点:
try { import myModule from 'my-module'; } catch (err) { // send error to log file }
我得到的错误:
“导入”和“导出”可能只出现在顶层
现在我明白, import
是不同的require
。 从阅读是否ES6模块import悬挂? 这意味着在执行代码之前加载import。
我之前做的是,如果任何需要失败的日志创build,通过电子邮件(发送日志logstash等)通知我。 所以我的问题归结为以下几点。
如何在nodejs中以良好的实践方式处理导入错误? 这样的事情存在吗?
这个谈话把它拿走: https : //github.com/ModuleLoader/es-module-loader/issues/280,并同意你说的话。
导入只能在基本级别上运行。 它们是静态的,并且始终在模块运行之前加载。
所以你不能做代码检查。
但好消息是,由于它是静态的,因此可以分析,像webpack这样的工具在构build时会抛出错误。