在npm上发布一个打字稿库:导出的符号,模块

时间:2016-12-29 01:26:37

标签: typescript typedoc

我正在编写一个打算在npm上发布的打字稿库。它只能在node中运行,而不能在浏览器中运行。仅使用打字稿中的库是有意义的(我不期望任何Javascript用户)。

我很难找到如何在npm上发布typescript-for-typescript库的指南(同样,这些东西似乎在打字稿世界中也在快速变化)。

我应该将所有代码包装在module中吗? (我不觉得图书馆本身需要模块,目前只有大约1000 LOC)。我应该创建一个index.ts文件吗?我想我应该为npm包发送.js.js.map.d.ts个文件但没有.ts个文件?

如何在库中的文件之间调用函数而不将它们导出到库的用户? 我目前不使用打字稿模块。我尝试使用typedoc,它还列出了我从单个文件导出的符号,以便在库的另一个文件中使用。但我不希望图书馆的用户看到这些内容。

我可以用一个库作为例子吗?我查看typescript-collections,他们不使用任何module并拥有index.ts。我认为他们导出了所有共享功能,所以这对我没有帮助。

2 个答案:

答案 0 :(得分:2)

我所做的是让index.ts导出所有文件。

喜欢

export { default as Actions } from './Actions'

然后,在你的package.json中, 添加属性"typings": "dist/index.d.ts"(相应地更改位置)

是的,导出定义和源映射。其他人可以使用source-map-support包稍后轻松调试它。

我更喜欢在发布时将它们预先构建到.js

答案 1 :(得分:0)

我建议你看看TypeScript Library Starter。它配置开箱即用:

  • Package.json配置
  • 通用模块包
  • 来源地图
  • 打字(.d.ts)
  • 使用TypeDoc的文档
  • 测试和报道