从fork安装@types定义

Wao*_*aog 7 npm typescript definitelytyped yarnpkg

上下文

我分叉了DefinitelyTyped并为一个类型定义做了一个变通方法.此解决方法位于此fork中的分支上.

此更改不应合并回来,因为它只是一个临时的解决方法.

如何通过npm或yarn安装此自定义类型定义?

问题

  • 我不能只安装分支,因为它将安装整个DefinitelyTyped仓库而不仅仅是库.
  • 理想情况下,我希望以默认类型定义的方式安装它,因此不需要额外的(全局)配置.

Mat*_*hen 2

AFAIK,没有一步解决方案,因为 npm 和yarn 不支持直接从 git 存储库的子目录安装。请参阅npm(也许有更新的问题)和Yarn 的问题以及之前的 Stack Overflow 问题(包括此问题)。(如果您的存储库托管在提供 URL 以下载存储库子目录的 tarball 的服务上,您可以尝试npm install在该 URL 上运行;我没有采用这种方法。)

我建议您使用Braid(声明:我是 Braid 贡献者)将 DefinelyTyped 分支的子目录复制到项目的子目录中,然后在该子目录上运行npm install(或yarn add)。 npm或者yarn将创建从适当位置node_modules到子目录的符号链接,因此 TypeScript 无需额外配置即可找到类型声明。由于DefinitelyTyped存储库不包含package.json单个类型包的完整功能文件,因此您可能需要package.json在本地子目录中创建该文件或在运行之前向其中添加缺少的字段npm install。(您可以将此更改保留为 Braid 镜像的下游更改。)

我在此解决方案中看到的唯一缺点是它在下游存储库中创建了类型包的副本,这将永久占用存储库中的一些空间。(Braid 会将DefinitelyTyped 的整个历史记录复制到下游存储库的本地克隆中,但该空间可以通过垃圾收集来回收。)