安装其他 package.json 依赖项。

3
简单问题:在 package.json 中是否可以引用另一个 package.json 并安装其依赖项? 谢谢。
2个回答

2

是的,这是可能的,并且可以通过 npm install 自动完成。

如果你有依赖于 pkg-bpkg-a ,在你的依赖项中包含 pkg-a 将在运行 npm install 时安装 pkg-apkg-b 。这是因为依赖项实际上是对其他包的 package.json 的引用。 NPM 在运行安装时会构建一个所有当前项目间接所需的软件包的依赖树,并将它们全部安装在 node_modules 目录中,并在 package-lock.json 中跟踪它们所有。


2
在我的情况下,pkg-b 是本地的,那么我如何在我的依赖项中引用它?谢谢。 - Pythorogus
3
将代码中的"pkg-a": "version"替换为"pkg-a": "file:./path/to/it",具体细节请参考此处 - Nino Filiu
我尝试过了,但我不知道你是否理解我的意思。 "pkg-a": "file:./path/to/it"会复制本地"pkg-a"的内容。但是在该pkg-a中,还有另一个包含依赖项的package.json文件。 当我运行npm install时,我希望这些依赖项也能安装。实际上,使用"file:./path/to/it"并不是这种情况。 - Pythorogus
2
这个答案实际上并没有解决请求的问题,即从一个本地package.json导入依赖项到另一个本地包中,以便运行npm install将安装“sub”包的依赖项。从文档中可以看出:“注意:在本例中,在本地路径下链接的包不会在运行npm install时安装其自己的依赖项。您必须从本地路径内部运行npm install。” - Rob Baillie

-1

好问题!但这是不可能的,因为您无法从另一个json文档内部引用一个json文档(json只是一种文档格式,缺乏任何处理逻辑、导入文件等能力),npm配置为使用单个package.json文件运行,因此您最好将所有依赖项放在单个package.json文件中,或将项目拆分为两个目录,每个目录都有一个独立的package.json文件、两个npm安装等,如果出于某种原因您需要将依赖项分开。然后,如果您希望,可以分别运行两个节点项目并通过http连接。

唯一接近实现的方法是在package.json中编写npm启动脚本,该脚本会切换到具有package.json的另一个目录并运行npm install,但这只会在第二个目录的node-modules/文件夹中安装依赖项。


这不是真的,请参考Nino的上面回答。 - jfunk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接