如何管理多个节点项目?

时间:2017-09-06 09:49:34

标签: javascript node.js reactjs npm webpack

我们正在使用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是一个很好的工具,但它需要改变架构,这是不可行的。

2 个答案:

答案 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文件被检入,你应该好。