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