可以打字从package.json自动安装d.ts吗?

时间:2016-07-13 05:23:02

标签: typescript typescript-typings

我在项目中安装了大约20个模块,现在我想使用typescript.But我需要逐个安装d.ts。这很无聊。那么有什么方法可以自动从package.json安装d.ts吗?

2 个答案:

答案 0 :(得分:2)

提议的解决方案

您可以像SnareChops建议的那样使用typings工具,但是在package.json中安装了一个“postinstall”脚本,以便在安装后运行typings install命令,只需确保添加{{1作为dev依赖关系如下:

typings

更多信息

关于自动查找打字稿定义,这是{ "name": "my-project", "version": "1.0.0", "description": "My project description", "main": "index.js", "author": "CodeAnimal", "scripts": { "postinstall": "typings install" }, "devDependencies": { "typings": "^1.3.1" } } 在某种程度上的含义,因为它searches many sources来查找定义文件。不幸的是,定义文件可以使用不同的名称作为npm模块名称,这意味着没有打字工具的自动安装是不可能的,除非包的创建者包含包的定义(见下文)。

如果您之前使用过typings,那么现在应该迁移到typings


对于包创建者

如果您正在创建npm包并使用TypeScript 1.6+,则可以使用 package.json 中的“tsd”属性在包本身中包含TypeScript定义文件:< / p>

typings

请确保在TypeScript项目的 tsconfig.json 文件中将{ "name": "my-project", "main": "lib/index.js", "typings": "lib/index", "files": [ "lib/" ] // etc } 指定为declaration

true

在媒体上有一个很棒的article on how to do this,这是我最初了解到的。

如果所有包作者都这样做,那么{ "version": "1.6.2", "compilerOptions": { "module": "commonjs", "declaration": true, "outDir": "lib/" }, "files": [ "./src/index.ts" ] } 工具在技术上会变得多余,它只需要所有IDE使用typings包属性来知道给定定义文件的位置模块/包。当然,它要求所有作者使用TypeScript(并自动生成定义文件),或者让他们手动创建定义文件并使它们与他们所做的任何代码更改保持同步。正是由于后者,创造者可以理解为不为TypeScript编写的项目手动创建定义文件,而typings等工具与活动社区一起创建这些定义,以便为那些我想使用TypeScript。

答案 1 :(得分:1)

您可以使用工具typings创建自己的typings.json文件,您可以将您的打字稿依赖项保存到。

示例:

typings install --save jquery

然后,如果另一个开发人员处理您的项目,他们只需要运行

npm install && typings install获取构建所需的一切。