从typescript文件生成npm模块

时间:2016-11-28 11:01:25

标签: typescript npm

我正在开发一个npm模块。该模块使用Angular2和TypeScript 2。

我正面临着与如何生成此模块有关的麻烦。

我不知道为了生成这个npm模块,我需要遵循哪些步骤。

我创建了public repository on github

为了生成npm模块,我需要做什么?

1 个答案:

答案 0 :(得分:1)

在您设置tsconfig.json的{​​{1}}中。它应该是"declarations": true"declaration": true字段需要在exclude之外。您还要指定需要包含compilerOptions的类型,实际上没有这样的文件。 https://www.typescriptlang.org/docs/handbook/compiler-options.html https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

现在,为了生成模块,请按照以下步骤操作。

  • 编写要从模块公开的所有实用程序的代码。即所有应该从您的模块中“可导入”的实体。

  • 完成上述步骤后,在src(假设src是您的index.d.ts)中创建一个名为index.tsx的文件或您选择的任何其他名称。在此文件中导出要公开的实体。

  • 接下来,在您的package.json中添加rootDir"main": "<outDir>/index.js"。请务必将"typings": <outDir>/index.d.ts替换为<outDir>的输出目录。 tsconfig字段用于告知安装应用程序在引用此模块时从何处导入。例如,如果安装应用程序执行以下代码行

    main

import {abc} from 'swagger-client'会告诉节点在main文件中查找abc
"<outDir>/index.js"字段只是typings的打字稿等价物,即它告诉节点在上例中查找main类型的位置。
另请注意abcmain字段中要提及的文件的扩展名。他们不是ts。根据经验,您不应将typings文件发布到npm。始终将.ts文件提交给github,并将生成的.ts.js文件发布到npm。显而易见的原因是,通过提交生成的文件,模块可用于js项目以及ts项目。