gpt4 book ai didi

node.js - npm 链接多个本地(相互依赖的)模块

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:18 25 4
gpt4 key购买 nike

我有 3 个 node.js 模块,A , BC .所有这些都是私有(private)的 git repos。 A取决于 B取决于 C . Git 克隆 A和做npm install就像一个魅力。

但是在模块上编码时 A , 我想继续 B (和 C )也是如此。后两者也是 git 克隆的。和 npm link ../pathto/B效果很好。

作为B取决于 C , npm link负责“安装”C进入B/node_modules/C .它是一个静态文件克隆,正在被 B 使用.

所以当做 npm link ../pathto/C , 结果为 A/node_modules/C (作为符号链接(symbolic link))。

但是,这就是问题所在,B将使用其 C 的静态克隆,而不是我链接到 A/node_modules/C 的内容.

A/
...
node_modules/
B -> B/
C -> C/
B/
...
node_modules/
C/
...
C/
...

有没有人想解决这个问题?

最佳答案

对我来说,一个简单的

npm link A B C

有效。使用 npm 7.5.2

当然,包要先暴露出来,所以

sudo npm link

必须在每个包的目录中运行。

这确实需要一些 package.json 的技巧:在安装新包期间,必须从需求中隐藏对本地模块的依赖(或者可能指定为路径,但我没有足够的知识)。之后,需要再次链接本地包。它们还必须始终使用一个命令链接,否则 npm 将简单地删除遗漏的命令。

2021-11-08 更新:

我正在使用 Vue,上述解决方案导致我的构建中出现多个 Vue 实例。似乎每个链接模块都忽略了导入模块的“正常”方式,而是分别进行了自己的导入。

所以现在我在库中使用 npm pack 并在使用项目作为文件依赖项时指定依赖项 "my_package_name": "file:/tmp/my_package_name-x.y.z.tgz",

关于node.js - npm 链接多个本地(相互依赖的)模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25466178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com