【问题标题】:What is the proper way to include Typescript typings for js packages which will be published to npm?为将发布到 npm 的 js 包包含 Typescript 类型的正确方法是什么?
【发布时间】:2016-12-18 23:30:37
【问题描述】:

我有 3 个 NodeJS 包,其中 2 个稍后将发布到 npm 并使用 javascript,我希望它们包含类型。我该如何正确地做到这一点?

我有一个库common、一个user-facing 和一个样本。样本依赖于user-facing,而那个样本依赖于common

我为每个包中的每个 .js 文件创建了类型文件,我在 package.json 中为每个指定主类型文件的包添加了 "typings" 指令。

但是当我尝试编译我的示例 tsc 正确找到 user-facing 的类型但随后抱怨它无法在试图导入 commonuser-facing 的文件中找到更多类型。

如何在不事先将类型发布到注册表的情况下在本地运行我的示例?

【问题讨论】:

    标签: javascript node.js typescript package typescript-typings


    【解决方案1】:

    没关系,我在“打字”指令中有错字。执行npm link 来“安装”依赖的包就足够了。

    【讨论】:

      【解决方案2】:

      您不必将内容发布到您创建的库的类型注册表。他们可以携带自己的打字。类型注册表用于为其他人创建的库创建类型。

      您想在 package.json 中包含一个类型化元素

      Example here

      "typings": "./yourentry.d.ts",

      然后让构建生成键入的 .d.ts 文件

      在您的 tsconfig 中:

      { "compilerOptions": {, "declaration": true,

      这样做将允许 tsc 和 vscode 找到它,并且当消费者执行 npm 安装时,它只会在编译时和智能感知中起作用。

      【讨论】:

      • 感谢您的确认。还有一件事,有没有一种方法可以在安装该 npm 模块时下载已下载模块的第 3 方类型,而无需在 sample's typings.json 中明确说明它们?
      猜你喜欢
      • 2018-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多