import - ES6 模块 : transitively exporting symbols (i. 例如,来自导入的文件)

标签 import ecmascript-6

假设我正在创建一个包含多个文件的 ES6 库,但有一个包含所有顶级定义的根文件。我怎样才能实现像这个例子这样的东西:

lib/foo/sub.js
export class Sub{}

lib/main.js
import { Sub } from './foo/sub'

client.js
# This doesn't work.
import { Sub } from 'lib/main'

即,客户端仅从顶级文件导入(因为子级别是实现细节 - 稍后可能会封装到单个缩小文件中(但在开发时位于多个文件中)。

最佳答案

您必须重新导出:

lib/main.js
import { Sub } from './foo/sub';
export { Sub };

您可以像这样直接重新导出:

export { Sub } from './foo/sub';

导出时可以重命名:

export { Sub as MySub } from './foo/sub';

或者重新导出所有内容:

export * from './foo/sub';

关于import - ES6 模块 : transitively exporting symbols (i. 例如,来自导入的文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109490/

相关文章:

python - 初学者 : need to import Beautiful Soup 4 into Python

python - Python 中的相对导入混淆

javascript - 从生成器迁移到异步/等待

javascript - onClick 时 react 删除元素

javascript - ES6 箭头函数 () vs _

javascript - 在 es 6 中使用对象作为方法的参数

javascript - 如何在 Ember 中的同一组件上编辑待办事项任务

java - 在 AndroidX 中导入 org.joda.time 的问题

python - 无法在 Jupyter Notebook 中导入 NLTK

java - OSGI号导入限制