NPM同时安装同一个库不同版本的方法

最近开发了一个小工具:ts2php-diff-checker,用来简化 ts2php 的升级过程。其中需要安装 ts2php 的不同版本,发现在一个项目中同时安装一个库的多个版本是可行的。

因为相同的 TS 代码在 ts2php 升级以后可能会产出不同的代码,为了严谨,可能需要人工检查 diff。使用 ts2php-diff-checker 可以简化这个过程,只需要输入要检查的文件匹配,以及两个 ts2php 版本,ts2php-diff-checker 会自动产出一份 diff 文件。

为了跑两个版本的 diff,就需要能同时调用到不同版本的 ts2php。解决这个问题的办法就是使用 NPM 的 package alias 特性,需要 6.9.0 版本 npm@6.9.0

使用方法非常简单:

package.json 中

1
2
3
4
5
6
7
{
"dependencies": {
"ts2php~v0.12.12": "npm:ts2php@^0.12.12",
"ts2php~v0.16.1": "npm:ts2php@^0.16.1",
"ts2php~v0.19.1": "npm:ts2php@^0.19.1"
}
}

npm i

1
npm i ts2php~v0.19.1@npm:ts2php@0.19.1

使用

1
const ts2php = require('ts2php~v0.19.1');

非常简单,起个别名就可以装不同版本的包了。

祝大家圣诞快乐~