如何自动将tsd定义与bower和npm链接?

4
我正在将一个已有项目转换为TypeScript,并且该项目依赖许多bower和npm模块(bower.json和package.json)。根据tsd github页面,TSD支持发现和链接从使用node或bower安装的包的定义。使用link命令,你的tsd.d.ts将会更新为node_modules或bower_modules文件夹中文件的路径。然而,在我运行了tsd init之后运行tsd link命令时,它只是显示“no (new)packages to link”,尽管我的package.json充满了模块,这让我发现它可能不是我想象中的那样工作。
这个特性将扫描package.json和bower.json文件以查找typescript元素。这个元素然后包含相对路径到.d.ts文件的定义或定义子元素。如果它不能获取我的package.json中的类型定义,那么这个“link”功能的目的是什么?除了消除tsd.json文件外,这个命令还有什么用处呢?
因此,如果不是通过tsd link实现,我想问是否有更好的方法来自动包含所有依赖项的tsd定义。手动管理所有这些定义似乎有点疯狂。
1个回答

2

tsd link并不是什么神奇的命令。第一次看到这个命令时,我和你一样也不知道该如何操作。

如果你通过bower或NPM安装新的包,并且这个包附带有.d.ts文件,并且在配置文件中还有一个"typescript": { "definition": "..." }字段,那么这个.d.ts文件会像下面这样被包含在你的tsd.d.ts文件中:

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

如果该包不提供d.ts文件和定义配置,则此命令无法执行任何操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接