Node.js 管理2+的开发;具有依赖项的nodejs包
我正在开发2个node.js包,每个包都在自己的git存储库中管理。包Node.js 管理2+的开发;具有依赖项的nodejs包,node.js,git,package,npm,Node.js,Git,Package,Npm,我正在开发2个node.js包,每个包都在自己的git存储库中管理。包B依赖于包A,因此我的本地目录结构如下所示: A1/ B/ node_modules/ A2/ 如果我更改了A1的本地代码,我希望在将其推送到公共存储库之前使用B对其进行测试。我该怎么做 在它的当前状态下,B有它自己的本地副本(A2),因此它引用的是不同的版本B是一个公共包,因此我希望避免直接修改B的源代码以引用A1 一个可能的解决方案是有两个B的本地副本:B1是发布的公共版本,它在本地依赖于A2,而B2是我自己
B
依赖于包A
,因此我的本地目录结构如下所示:
A1/
B/
node_modules/
A2/
如果我更改了A1
的本地代码,我希望在将其推送到公共存储库之前使用B
对其进行测试。我该怎么做
在它的当前状态下,B
有它自己的本地副本(A2
),因此它引用的是不同的版本B
是一个公共包,因此我希望避免直接修改B
的源代码以引用A1
一个可能的解决方案是有两个B
的本地副本:B1
是发布的公共版本,它在本地依赖于A2
,而B2
是我自己的私有版本,它使用类似require('./../A1')
的东西直接引用A1
这似乎有点难看(而且会迫使我维护2份B
),我想知道是否有一种推荐的方法来处理这种情况
谢谢。在最简单的情况下,符号链接就可以做到这一点。但是你可以更进一步,使用一些奇特的构建系统,比如咕噜、咕噜等等。 我所有的项目都使用经典的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
。所以它也非常便携。太棒了,谢谢!我刚刚还发现了npm-link
,它将为我处理符号链接的创建。您的makefile
解决方案(或grunt)适用于更复杂的设置。
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