我有一个我在TypeScript中构建的库。我想在TypeScript和JavaScript Node项目中包含此库。这样做的一般策略是什么?我应该编译并有两个版本,还是我应该使用其他策略?
答案 0 :(得分:3)
我想在TypeScript和JavaScript Node项目中包含这个库。这样做的一般策略是什么?
使用以下内容编译以获取js
输出:
--module commonjs --outDir ./dist
这应该使您的项目可以被JS项目消耗。要使TS项目可以使用它,您需要生成声明文件。可以使用https://github.com/SitePen/dts-generator完成此操作。有关详细信息,请参阅用法:https://github.com/SitePen/dts-generator#usage
注意:有关于删除dts-generator
依赖关系的讨论:https://github.com/Microsoft/TypeScript/issues/2338
答案 1 :(得分:0)
在大多数情况下,我看到你有一个编译JavaScript所在的/ dist /文件夹。
通常还有一个像yourfilename.min.js这样的缩小版本 - 其余的在外面或在/ src /文件夹中,所以外面你只有license / readme.md,package.json可能还有文件对于Grunt / Gulp(如果你使用taskrunner,它被认为是礼貌的 - 包括一个Grunt / Gulp文件来编译打字稿并随后缩小.js文件,就我所知)
答案 2 :(得分:0)
如果您想在TypeScript项目中使用TypeScript时保留TypeScript优势,那么您显然必须公开TypeScript版本的代码,以便TypeScript编译器可以看到您的界面的TypeScript声明。
但是,如果你希望人们能够在普通的Javascript项目中使用你的库(不能将TypeScript编译成JS),那么你必须提供一个具有普通Javascript接口的版本和代码所在的版本已经被编译成普通的JS。
所以,如果你想要这两个优点,那么你必须提供两个不同的版本。简单的JS版本显然只是TypeScript的编译版本(编译成普通的JS)。