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中按顺序更改所包含的projectX
到projectX-v1.0.0
和projectX-v1.0.1
的名称(见上文)最终在node_modules
文件夹中有两个单独的文件夹。
我需要这个的原因是以下omni-repository结构:
/omni/
/omni/frontend
/omni/frontend/projectA
/omni/frontend/projectB
...
/omni/package.json
projectA
将使用projectX-v1.0.0
而projectB
将使用projectX-v1.0.1
(与browserify捆绑)
谢谢!
答案 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或另一个带有包别名的包管理器更容易。