ES6 模块:传递导出符号(即从导入的文件)
ES6 Modules: transitively exporting symbols (i.e., from imported files)
假设我正在创建一个包含多个文件的 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';
假设我正在创建一个包含多个文件的 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';