我正在编写一个打算在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。我认为他们导出了所有共享功能,所以这对我没有帮助。
答案 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。它配置开箱即用: