繁体   English   中英

如何在NodeJS中公开TypeScript模块?

[英]How to expose TypeScript modules in NodeJS?

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

我想在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

在大多数情况下,我看到你有一个编译JavaScript所在的/ dist /文件夹。

通常还有一个像yourfilename.min.js这样的缩小版本 - 其余的都在外面或在/ src /文件夹中,所以在你外面你只有license / readme.md,package.json,也许是Grunt /的文件Gulp(如果您使用taskrunner,它被认为是礼貌的 - 包括一个Grunt / Gulp文件,用于编译打字稿并在之后缩小.js文件,据我所知)

如果要在TypeScript项目中使用它时保留TypeScript优势,那么显然必须公开TypeScript版本的代码,以便TypeScript编译器可以看到您的接口的TypeScript声明。

但是,如果你希望人们能够在普通的Javascript项目中使用你的库(不能将TypeScript编译成JS),那么你必须提供一个具有普通Javascript接口的版本,并且代码已经被编译成了普通的JS。

因此,如果您想要这两个优点,那么您必须提供两个单独的版本。 简单的JS版本显然只是TypeScript的编译版本(编译成普通的JS)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM