gpt4 book ai didi

node.js - 管理 2 个以上具有依赖关系的 Nodejs 包的开发

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

我正在开发 2 个 node.js 包,每个包都在自己的 git 存储库中管理。包 B 依赖于包 A,所以我的本地目录结构如下所示:

A1/
B/
node_modules/
A2/

如果我对 A1 的本地代码进行更改,我想在将其推送到公共(public)存储库之前使用 B 对其进行测试。我怎样才能做到这一点?

在当前状态下,B 有自己的本地副本 (A2),因此它引用了不同的版本。 B 是一个公共(public)包,因此我希望避免直接修改 B 的源代码来引用 A1

一种可能的解决方案是拥有 B 的 2 个本地副本:B1 是已发布的公共(public)版本,它对 A2 有自己的本地依赖关系>,而 B2 是我自己的私有(private)版本,它使用 require('./../A1') 等直接引用 A1

A1/
B1/
node_modules/
A2/
B2/

这看起来有点丑陋(并且会迫使我维护 2 个 B 副本),我想知道是否有推荐的方法来处理这种情况?

谢谢。

最佳答案

在最简单的情况下,符号链接(symbolic link)就可以解决问题。但您可以更进一步,使用某种奇特的构建系统,如 grunt、gulp 等。我在所有项目中都使用经典的 make 脚本。因此,您可以在测试之前将一个项目复制到另一个项目中,例如:

NPM = /usr/bin/env npm
MODULES = ./node_modules/
PROJECTS_PATH = ../
DEPENDENCY = project_a/

default: test

test: copy
$(NPM) test

copy:
@rm -rf $(MODULES)$(DEPENDENCY)
@cp -r $(PROJECTS_PATH)$(DEPENDENCY) $(MODULES)$(DEPENDENCY)

install:
@rm -rf $(MODULES)
$(NPM) install

.PHONY: test

这不是最好的构建脚本,但它可以完成这项工作。大多数 UNIX 系统都会安装 make。所以它也非常便携。

关于node.js - 管理 2 个以上具有依赖关系的 Nodejs 包的开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24475048/

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