4

我正在将现有项目转换为具有许多 bower 和 npm 依赖项(bower.json 和 package.json)的 TypeScript。根据tsd github页面

TSD 支持从使用 node 或 bower 安装的包中发现和链接定义。使用链接命令,您的 tsd.d.ts 将更新为 node_modules 或 bower_modules 文件夹中文件的路径。

但是,当我运行命令tsd linktsd init它只是说no (new)packages to link即使我的 package.json 充满了模块。这让我发现,也许它并没有像我认为的那样做。

此功能将扫描 package.json 和 bower.json 文件以查找 typescript 元素。然后,此元素包含定义或定义子元素,其中包含 .d.ts 文件的相对路径:

什么?link如果这个功能不只是从我的 package.json 中获取类型定义,那么它的目的是什么?此命令是否只是从我的 package.json 而不是我的 tsd.json 文件中提取 tsd 配置?那么,除了消除 tsd.json 文件之外,还有什么意义呢?

所以如果不是tsd link,我问是否有更好的方法来自动包含我所有依赖项的 tsd 定义。对我来说,这些都将由手工管理似乎有点疯狂。

4

1 回答 1

2

tsd link不是一个神奇的命令。当我第一次看到这个命令时,我假设就像你一样。

如果您通过 bower 或 NPM 安装新软件包,并且该软件包与配置文件捆绑在一起并且在配置文件中.d.ts也有一个,那么它将包含在您的文件中,如下所示:"typescript": { "definition": "..." }.d.tstsd.d.ts

/// <reference path="jquery/jquery.d.ts" />
/// <reference path="../bower_components/angular/angular.d.ts" />

如果包不提供d.ts文件和定义配置,则此命令无能为力。

于 2015-11-28T06:33:33.683 回答