如何在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
在大多数情况下,我看到你有一个/dist/文件夹,其中编译的JavaScript位于。
通常还有一个像yourfilename.min.js这样的缩小版本-其余的要么在外部,要么在/src/文件夹中,所以在外部你只有许可证/自述文件。医学博士,包。可能还有Grunt/Gulp的文件(如果你使用taskrunner,包括一个Grunt/Gulp文件来编译typescript,然后缩小。js文件,就我所见,这是礼貌的)
如果你想在TypeScript项目中使用它时保留TypeScript的优势,那么你显然必须公开TypeScript版本的代码,这样TypeScript编译器才能看到你的接口的TypeScript声明。
但是,如果你希望人们能够在纯Javascript项目中使用你的库(不将TypeScript编译成JS),那么你必须提供一个具有纯Javascript接口的版本,并且代码已经被编译成纯JS。
所以,如果你想要这两个优点,那么你必须提供两个不同的版本。显然,纯JS版本只是TypeScript的编译版本(编译成纯JS)。
- Typescript模块没有导出的成员-react
- Visual Studio 2015 Update 2-'中的TypeScript模块;要求'未定义
- 可以't在不提供文件扩展名的情况下导入TypeScript模块
- Typescript 0.9.1.1模块被拆分为几个.ts文件
- Typescript模块和systemjs.从内联脚本实例化类
- 通过 RequireJS 从 javascript 调用 TypeScript 模块
- jspm / jQuery / TypeScript - 模块“jquery”没有默认导出
- 来自 TypeScript 模块的 JavaScript IIFE 中的默认参数的目的是什么?
- 用requireJS加载一些typescript模块
- 运行时未定义Typescript模块
- 为什么“;这个“;在具有http promise的typescript模块中未定义
- 使用typescript模块进行Browserify -什么是最佳设计实践?
- 从typescript模块中注册Knockout.js组件视图模型
- Typescript模块放到单个JS文件中
- 需要帮助来理解Angular 2/Typescript模块在Prime NG中的声明
- 如何在NodeJS中公开TypeScript模块
- 无法使用——out将typescript模块(.ts)文件连接到单个输出(.js)中
- Typescript模块工厂模式
- 引用嵌套的TypeScript模块
- Typescript模块,需要外部node_modules