问问题
3015 次
2 回答
3
正确的方法是创建一个将重新导出模块的桶文件。
// foo/a.ts
export function a() {}
// foo/b.ts
export function b() {}
// foo/index.ts
export {a} from './a';
export {b} from './b';
然后在您的消费者中:
import {a, b} from './foo';
a();
b();
于 2016-06-07T16:34:42.637 回答
1
我添加了一个答案,因为今天前端库的正确方法是使用Rollup。
首先,编写 ES6 模块,import
它们export
:
// file-a.ts
export function a() {}
// file-b.ts
export function b() {}
// main.ts
export { a } from "./file-a"
export { b } from "./file-b"
然后,使用设置为tsc
的选项将代码编译为 JavaScript 。module
"es6"
然后,让 Rollup 从 JavaScript 代码构建一个平面包。对于上面的代码,Rollup 会生成这个包:
function a() {}
function b() {}
export { a, b };
也可以看看:
- 汇总 REPL:https ://rollupjs.org/repl
- 文章:Webpack 和 Rollup:相同但不同
注意:构建定义文件( ) 的最终解决方案尚未实施(2018 年 3 月)。我仍然使用 Node.js 脚本连接文件以在单个 TypeScript 定义文件中生成导出的类型。.d.ts
于 2017-10-01T09:46:34.720 回答