gpt4 book ai didi

node.js - 处理 Node 中子模块的本地依赖关系的最佳方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:06 25 4
gpt4 key购买 nike

在我们的环境中,我们有一个 Node 应用程序,它依赖于一个子模块,该子模块也是一个 Node 模块。我们在使用 npm link 时遇到了问题,因此尝试使用本地依赖项(即将 package.json 中的依赖项值设置为 file:./path/to/dep)。这样做的问题是,当您在子模块中进行更改时,您必须更改版本并在父模块中更新它。有没有更好的方法来处理这种类型的依赖关系,以便我可以在子模块中进行更改并将其传播到父模块?

最佳答案

如果您希望在子模块中所做的更改立即反射(reflect)在主模块中,我知道实现此目的的唯一方法是从主模块的 node_modules/ 创建符号链接(symbolic link)目录到您的子模块的目录。我真的建议找出原因npm link不适合你,因为这是实现这一目标的最好方法。但是,如果您愿意,也可以手动创建链接。

例如,如果您的子模块的包名称是“wonderful”并且您的文件结构如下所示:

main-module/
sub-module/

然后就可以创建符号链接(symbolic link)main-module/node_modules/wonderful指向main-module/sub-module通过从主模块的根目录运行以下命令:

ln -s ../sub-module ./node_modules/wonderful

然后您在子模块中所做的任何更改都将立即在主模块中使用。

关于此的两个注释:

  • 确保main-module/node_modules/wonderful不作为 npm install 存在-ed 目录,然后再创建链接,否则将无法工作。
  • 当你 npm install同样,它会覆盖您的符号链接(symbolic link),因此如果您想经常执行上述命令,请将其放入 shell 脚本中。

关于node.js - 处理 Node 中子模块的本地依赖关系的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903903/

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