使用依赖性pipe理2+ nodejs包的开发

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

 A1/ B/ node_modules/ A2/ 

如果我对A1的本地代码进行更改,我想先用B对其进行testing,然后再推送到公共存储库。 我怎样才能做到这一点?

在当前状态下, B有自己的本地副本( A2 ),所以它引用了不同的版本。 B是公开包,所以我想避免直接修改B的源代码到引用A1

一个可能的解决scheme是有2个本地副本BB1是释放的公共版本,它有自己的本地依赖于A2 ,而B2是我自己的私人版本,使用类似于require('./../A1')

 A1/ B1/ node_modules/ A2/ B2/ 

这看起来很丑陋(并且会迫使我保持B两份),而且我想知道是否有推荐的方法来处理这种情况?

谢谢。

在最简单的情况下,符号链接将会诀窍。 但是你可以进一步去使用一些像grunt,gulp等那样的花哨的构build系统。 我为我的所有项目使用经典的make脚本。 所以你可以在testing之前将一个项目复制到另一个项目中,例如:

 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 

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