防止导入es6默认导出

时间:2018-05-09 17:33:15

标签: node.js ecmascript-6

我有一个小节点包,我希望用户只在他们的项目中使用命名导入。

import { Logger } from 'logger';

然而,没有什么能阻止用户做

import defaultImportedLogger from 'logger';

当他们发现defaultImportedLoggerundefined因为我的项目在任何地方都没有export default时,他们才会学到很难的方法。因此,默认导出为undefined

如果我尝试导入命名导出,例如:

import { foo } from 'logger'

我的编辑会抱怨,因为foo并未曝光。为什么我的编辑器没有在默认导入情况下抱怨?

1 个答案:

答案 0 :(得分:2)

在未定义导出时尝试导入默认导出的结果取决于您正在使用的捆绑器。例如汇总throws an error:“'默认'不会被< filename>”导出。

我认为没有办法阻止用户导入默认导出。您可以做的最好的事情是导出一个在调用时抛出错误的函数,并显示错误消息“不要使用默认导出”。