【问题标题】:Install other package.json dependencies安装其他 package.json 依赖项
【发布时间】:2019-04-03 04:31:20
【问题描述】:

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

【问题讨论】:

    标签: npm package.json


    【解决方案1】:

    是的,这是可能的,这是由npm install 自动完成的。

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

    【讨论】:

    • 就我而言,pkg-b 是本地的,那么如何在我的依赖项中引用它?谢谢
    • "pkg-a": "file:./path/to/it" 而不是 "pkg-a": "version"。更多详情here
    • 我试过了,但我不知道你是否明白我想要什么。 “pkg-a”:“file:./path/to/it”复制本地“pkg-a”的内容,ok。但是在那个 pkg-a 中,还有另一个 package.json,包含依赖项。当我运行 npm install 时,我也希望安装这些依赖项。实际上,“file:./path/to/it”并非如此
    【解决方案2】:

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

    您可以接近执行此操作的唯一方法是在 package.json 中编写一个 npm 启动脚本,该脚本 cds 到带有 package.json 的另一个目录并运行 npm install,但这只会将依赖项安装在第二个目录 node-modules/ 文件夹

    【讨论】:

    • 这不是真的,请参阅 Nino 的上述回答
    猜你喜欢
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 2022-12-24
    • 2015-07-24
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多