如何在NodeJS中公开TypeScript模块?

时间:2015-06-09 22:34:17

标签: javascript node.js typescript

我有一个我在TypeScript中构建的库。我想在TypeScript和JavaScript Node项目中包含此库。这样做的一般策略是什么?我应该编译并有两个版本,还是我应该使用其他策略?

3 个答案:

答案 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)。