假设我有两个私有(通过npm不可用)项目:projectA和projectB,都使用Git作为回购:
ProjectA:
项目B:
在我的本地环境中,这些项目使用npm link
进行链接,而在构建环境中,ProjectA是从ProjectA从git仓库获取的。
我想要实现的目标:在构建(Babel / Webpack)projectA时同步git分支,例如:构建ProjectA dev 分支以获取ProjectB的 dev 分支。 / p>
由于package.json不能有任何其他名称,唯一可以想到的选项是shell脚本(在projectA的package.json中查找并替换projectB的分支名称)。
但也许有更好的选择?
答案 0 :(得分:1)
我用bash脚本解决了它:在构建projectA之前执行这个:
sed -i -e "s/projectB\.git.*/projectB\.git#$BRANCH\",/g" ./package.json
这会将项目的B分支更改为$BRANCH
,其中包含项目'a A branch的值。
答案 1 :(得分:0)
NPM链接用于开发目的,因此您可以在针对另一个模块进行测试时编写一个模块。例如,为Express编写插件。你应该只是临时链接来做这种工作。其余时间您应该使用实际的dependencies
和devDependencies
。
要锁定模块之间的版本依赖关系,您应该使用git中的包。可以使用特定的提交哈希或标记来定位这些。请务必在您的代码中使用semver表示法,因为这是npm所期望的。