npm包含两次不同版本的相同依赖项

时间:2016-07-11 07:27:57

标签: javascript npm versioning

package.json中是否可以包含两次相同的依赖项,但具有不同的版本:

"dependencies": {
    "projectX-v1.0.0": "ssh://git@github.com/xxx/projectX.git#v1.0.0",
    "projectX-v1.0.1": "ssh://git@github.com/xxx/projectX.git#v1.0.1"
}

我能想到的最好的方法是在其版本/标签和package.json中按顺序更改所包含的projectXprojectX-v1.0.0projectX-v1.0.1的名称(见上文)最终在node_modules文件夹中有两个单独的文件夹。

我需要这个的原因是以下omni-repository结构:

/omni/
/omni/frontend
/omni/frontend/projectA
/omni/frontend/projectB
...
/omni/package.json

projectA将使用projectX-v1.0.0projectB将使用projectX-v1.0.1(与browserify捆绑)

谢谢!

2 个答案:

答案 0 :(得分:3)

不是与vanilla npm,尽管社区广泛地talked about。也就是说,Scott Hardy的npm-install-version包将允许您将节点模块安装到版本化或自定义目录。

答案 1 :(得分:0)

NPM表示他们不打算实施此功能,但我已经找到解决方法。我在github上分叉了软件包存储库,并将其重命名。然后,我使用以下代码将该新仓库安装为依赖项:

npm i -S git+ssh://git@gitlab.com:<org>/<renamed-project>.git

现在,我可以升级实际的npm软件包,并将项目中对它的所有引用更改为新的,已重命名的项目git repo依赖项。这是很多额外的工作,但是我发现它比切换到yarn或另一个带有包别名的包管理器更容易。

相关问题