如何pipe理多个节点项目?
我们正在使用3个不同的节点项目: 项目1 , 项目2和项目3使用react和webpack 。 所有3个项目都在3个不同的仓库中。
项目1和项目2是独立的,但项目3需要项目1和项目2的压缩文件,并作为devDependencies(node_modules)放在项目3中。
现在,我们需要在Project 1或Project 2中进行更改,以便在Project 3中使用新的zip文件。
为了debugging,我们需要更改Project 1或Project 2中的代码,然后使用npm pack
一个压缩文件,然后在Project 3中更新该压缩文件并停止Project 3的生成 ,然后再次卸载并安装该压缩文件,然后运行项目3再次。
另一个更快一点,一个解决scheme是使用npm包构build项目1或项目2 ,然后复制生成的lib文件,然后将其复制到项目3运行实例中的/node_modules/Project 1(or2)/lib
文件夹中。
有没有更好或更快或更方便的方法来pipe理所有这些项目?
请不要build议lerna 。 莱纳是一个伟大的工具,但它需要改变的架构是不可行的。
我会把他们全部在一个回购。 然后你保证知道所有的项目是相对于彼此的。 每个项目只是一个子文件夹,并有它自己的package.json
就像它现在一样。
你只需要一些脚本,将压缩和复制到每个项目的正确位置。
我将使这些脚本从项目的顶层运行(它有自己的package.json
,在脚本文件夹中)。一些调整.gitignore
来阻止zip文件被检入,你应该是好的。
你不能把project1和project2发布到npm吗?
npm publish project1 npm publish project2
在project3中使这些项目成为devDependencies。
然后在project3中npm install
一个npm install
就会得到最新的project1和project2。
如果隐私是一个问题,你不能得到一个私人npm回购? 是的,它的成本。
或者,您可以在自己的服务器上托pipe自己的npm回购?