我正在开发我的第一个npm模块。我之前曾短暂地使用过TypeScript,一个很大的问题是,对于许多模块,没有可用的定义文件。所以我认为用TypeScript编写我的模块是个好主意。
然而,我找不到任何关于最好的方法的信息。我发现了一个相关的问题"Can I write npm package in CoffeeScript?“,人们建议只发布JavaScript文件。但与CoffeeScript文件不同的是,如果在TypeScript应用程序中使用TypeScript文件,那么它们实际上可能很有用。
我应该在发布npm模块时包含TypeScript文件,还是应该只发布JavaScript文件并将生成的.d.ts文件提供给DefinitelyTyped?
发布于 2017-03-05 07:24:17
您应该发布原始的typescript源代码,而不是类型定义。在package.json
中,让“types”属性指向*.ts文件。
*.d.ts
可以很好地注释现有的JS库,但作为使用者,我宁愿阅读typescript代码,也不愿在类型定义和低级的、生成的JS代码之间切换。
发布于 2017-03-31 19:56:19
我主要遵循Varun Chatterji的建议。
但是,我想展示一个完整的示例,其中包含单元测试和代码覆盖率,并将其发布到npm
中,然后使用javascript
或typescript
导入它们
此模块是使用typescript 2.2
编写的,在将代码发布到npm之前,配置prepublish
挂钩以使用tsc
编译代码非常重要
发布于 2015-08-19 00:04:57
您可以在没有Atom IDE支持的情况下,使用autodts处理来自npm的.d.ts
文件的分发和使用。
autodts generate
会将您自己的所有.d.ts
文件捆绑在一起,以便在npm上发布,而autodts link
会处理对其他已安装包的引用,这些包可能并不总是直接位于拆分为几个子包的较大项目的node_modules
下。
这两个命令都以“约定重于配置”的方式从package.json
和tsconfig.json
中读取它们的设置。
在stackoverflow上有another answer,还有一个有更多细节的blog post。
https://stackoverflow.com/questions/30928253
复制相似问题