【问题标题】:How to manage multiple node projects?如何管理多个节点项目?
【发布时间】:2018-02-14 18:10:12
【问题描述】:

我们正在使用 3 个不同的 node 项目:Project 1Project 2Project 3 使用 reactwebpack。所有 3 个项目都托管在 3 个不同的存储库中。

Project 1Project 2 是独立的,但 Project 3 需要 Project 1Project 1 的 zip 文件em>Project 2 并作为 devDependencies(node_modules) 放入 Project 3

现在问题来了,当我们需要在 Project 1Project 2 中进行更改以便新的 zip 文件可以在 Project 3 中使用时em>。

为了调试,我们需要更改 Project 1Project 2 中的代码,然后使用 npm pack 构建一个 zip,然后在 中更新该 zip项目 3 并停止构建 项目 3,然后再次卸载并安装该 zip,然后再次运行 项目 3

另一个,快一点,一个解决方案是使用 npm pack 构建 Project 1Project 2 然后复制生成的 lib 文件,然后将其复制到Project 3 运行实例中的/node_modules/Project 1(or2)/lib 文件夹。

是否有更好、更快或更方便的方式来管理所有这些项目?

请不要推荐lerna。 Lerna 是一个很棒的工具,但它需要改变架构,这是不可行的。

【问题讨论】:

    标签: javascript node.js reactjs npm webpack


    【解决方案1】:

    你不能将 project1 和 project2 发布到 npm 吗?

    npm publish project1
    npm publish project2
    

    使这些项目在 project3 中成为 devDependencies。

    那么在 project3 中只需一个npm install 就会得到最新的 project1 和 project2。

    如果隐私是一个问题,你不能获得一个私人的 npm 回购吗?是的,它要花钱。

    或者,您可以在自己的服务器上托管自己的 npm 存储库?

    【讨论】:

    • 是的,这是一个很好的解决方案,我想大多数组织必须只遵循这一点。我的问题是,这个决定不取决于我是否购买私人回购,所以我想要一个基于本地的解决方案。但这是解决多 repo 问题的正确方法。
    【解决方案2】:

    我会将它们全部放在一个仓库中。然后,您可以保证知道所有项目相对于彼此的位置。每个项目只是一个子文件夹,并且像现在一样拥有自己的package.json

    您只需要一些脚本来将压缩和复制到每个项目中的正确位置。

    我会让这些脚本从项目的顶层运行(在脚本文件夹中有它自己的package.json。对.gitignore 进行一些调整以阻止 zip 文件被签入,你应该很好。

    【讨论】:

    • 谢谢。这就是我为解决我的多回购问题所做的。我所有的项目都在不同的存储库中,但我已经将这些多个存储库项目下载到了一个父文件夹中。我使用 VS Code,所以我只需在 VS Code 中打开父文件夹,然后编写一些脚本来通过父级别的 .vscode 文件夹中的 tasks.json 进行卸载、安装和复制粘贴过程。
    猜你喜欢
    • 2016-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    相关资源
    最近更新 更多