简单问题:在 package.json 中是否可以引用另一个 package.json 并安装其依赖项?
谢谢。
是的,这是可能的,并且可以通过 npm install
自动完成。
如果你有依赖于 pkg-b
的 pkg-a
,在你的依赖项中包含 pkg-a
将在运行 npm install
时安装 pkg-a
和 pkg-b
。这是因为依赖项实际上是对其他包的 package.json
的引用。 NPM 在运行安装时会构建一个所有当前项目间接所需的软件包的依赖树,并将它们全部安装在 node_modules
目录中,并在 package-lock.json
中跟踪它们所有。
好问题!但这是不可能的,因为您无法从另一个json文档内部引用一个json文档(json只是一种文档格式,缺乏任何处理逻辑、导入文件等能力),npm配置为使用单个package.json文件运行,因此您最好将所有依赖项放在单个package.json文件中,或将项目拆分为两个目录,每个目录都有一个独立的package.json文件、两个npm安装等,如果出于某种原因您需要将依赖项分开。然后,如果您希望,可以分别运行两个节点项目并通过http连接。
唯一接近实现的方法是在package.json中编写npm启动脚本,该脚本会切换到具有package.json的另一个目录并运行npm install,但这只会在第二个目录的node-modules/文件夹中安装依赖项。
"pkg-a": "version"
替换为"pkg-a": "file:./path/to/it"
,具体细节请参考此处。 - Nino Filiu