node.js - 防止导入 es6 默认导出
问题描述
我有一个小节点包,我希望用户只在他们的项目中使用命名导入。
import { Logger } from 'logger';
但是,没有什么可以阻止用户做
import defaultImportedLogger from 'logger';
defaultImportedLogger
当他们发现那是undefined
因为我的项目没有任何地方时,他们只会以艰难的方式学习export default
。因此默认导出为undefined
.
如果我尝试导入命名导出,例如:
import { foo } from 'logger'
我的编辑会抱怨,因为foo
没有曝光。为什么我的编辑在默认导入的情况下没有抱怨?
解决方案
在未定义默认导出时尝试导入默认导出的结果取决于您使用的捆绑器。例如 Rollup会抛出一个错误:“'default' 不是由 <filename> 导出的”。
我认为没有任何方法可以阻止用户导入默认导出。您可以做的最好的事情是导出一个在调用时引发错误的函数,并显示错误消息“不要使用默认导出”。
推荐阅读
- android - 在 ViewPager Android 中添加超过 2 个不同的视图
- r - 嵌套在 R 中的 for 循环
- java - 延迟加载的集合在junit中为空
- python - 函数“cv::cvtColor”中的 OpenCV 错误 215 src.empty()
- optimization - Express/GraphQL 建议
- r - 如何从我制作的表格中制作情节
- reactjs - 为我的反应应用程序在 index.js 中放置 html 标签显示错误
- javascript - 如何获得我在反应中拖动的div的当前位置(XY)?
- python - 如何将 Treeview 的大小调整为全屏宽度和高度?
- algorithm - Delphi 函数,它接受整数并返回一个不容易解码的整数