我在服务器上运行了一系列名为app1
,app2
,app3
的应用程序。他们都是Github回购。
所有这些都依赖于一个正在大力发展的模块changing-module
。该模块发布于npm。
我无法决定如何部署应用程序以及模块。请注意,我有大量开发的TWENTY模块,而不仅仅是一个。
可能的解决方案:
1)使用NPM部署changing-module
。 优点:容易做到。 缺点:它要求我为app1,app2和app3手动为changing-module
执行npm更新。这也意味着每次做出重大更改时,我必须在每个更改模块的每个应用程序上npm publish
2)签出changing-module
,并使用符号链接。这意味着我使用git checkout
/ npm install
安装应用程序,但是然后我取出NPM模块并用符号链接替换它们。 优点:对所有应用程序立即可以看到对仓库的任何更改。 缺点:这是一个问题,因为changing-module
具有依赖关系,node_modules
下的实际依赖于应用程序(因为重复数据删除)等等。)。
3)在每个应用程序中将changing-module
作为git存储库。这意味着我使用git checkout
/ npm install
安装应用程序,但是我将npm存储库与git存储库交换,_keeping node_modules完整无缺。 优点: changing-module
内容中没有混淆npm依赖项缺点:需要在每个应用程序上执行git pull
<每次我做出重大改变时,每个更改模块都会发生。
理想的解决方案是(2),因为我真的希望我的应用程序使用changing-module
的最新更改。但是,我不确定如何处理依赖项问题。
你是怎么做到的?