由于 https://github.com/npm/npm/issues/2943 ,npm 永远不会支持别名包和安装同一包的多个版本的功能。
github问题上发布的解决方法可能适用于纯JS模块,但随着npm成为前端包管理的标准,包现在包含各种 Assets ,例如CSS。
是否有任何解决方法可以安装同一软件包的多个版本?
我想到的最好的想法是“克隆”一个包,并使用稍微不同的名称来发布它。
例如,如果您需要多个版本的 jquery
,您只需发布名为 jquery-alias1
、jquery-alias2
、jquery-alias3
等,然后在 package.json
中设置适当的版本。
或者您可以根据版本号命名软件包,例如 jquery-1.11.x
、jquery-2.1.x
等。
但这两种方法看起来都很草率。还有更好的吗?
最佳答案
npm 从 v6.9.0 开始支持包别名。它实现了the same syntax as Yarn :
npm install jquery2@npm:jquery@2
npm install jquery3@npm:jquery@3
这会将以下内容添加到package.json
:
"dependencies": {
"jquery2": "npm:jquery@^2.2.4",
"jquery3": "npm:jquery@^3.4.1"
}
也可以直接从 GitHub 安装。例如,如果您想要安装 npm 注册表版本和包 foobar
的 GitHub 分支:
npm install foobar
npm install foobar-fork@github:username/foobar
关于npm - 如何使用 npm 安装多个版本的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26414587/