【发布时间】:2016-08-14 20:03:57
【问题描述】:
我目前正在使用 Babel。
我之前使用require 做过以下操作:
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' 和 'export' 只能出现在顶层
现在我知道import 与require 不同。从阅读Are ES6 module imports hoisted?import提升,这意味着导入在代码执行之前加载。
我之前所做的是,如果任何要求失败,则会创建一个日志,该日志会通过电子邮件提醒我(将日志发送到 logstash 等)。所以我的问题归结为以下几点。
如何在 nodejs 中以一种良好的实践方式处理导入错误?这样的事情存在吗?
【问题讨论】:
-
你用过 Babel 吗?
-
@Tugrul 啊,是的,我应该提到这一点。
-
我现在没有问题了:)
-
我认为如果你需要有条件地加载模块(或者需要在加载时捕获错误),你必须坚持使用
require()。另请参阅this question and its answers。 -
尝试查看
System.import,虽然它没有在 babel 中实现
标签: node.js