2015-11-13 49 views
4

我正在将现有项目转换为带有许多bower和npm依赖项(bower.json和package.json)的TypeScript。按照tsd github page如何自动将tsd定义与bower和npm链接?

TSD支持从节点或凉亭安装的软件包 的定义,发现和链接。使用链接命令,您的tsd.d.ts将被更新为指向node_modules或bower_modules文件夹中文件的路径。

然而,当我运行命令它只是说no (new)packages to linktsd linktsd init后,即使我的package.json是粉笔全模块。这让我发现,也许它没有做我认为的事。

此功能将扫描package.json和bower.json文件中的 typescript元素。该元素包含定义或包含相对于.d.ts文件的相对路径的子元素:

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

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

回答

2

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

如果安装通过凉亭或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文件和定义配置,此命令无能为力。