如何在一个模块上与多个 npm 发布者协作

How to collaborate with multiple npm publishers on one module

如果一个 npm 模块上有多个发布者,我们如何组织我们的文件系统和进程?我们是否需要一个公共存储库(例如 GIT)或者是否有使用 npm 自己的发布和更新过程的聪明方法?

我无法理解的主要问题是软件包的初始发布者无法从软件包本身获取最新版本,对吧?除非他将其安装为对另一个包的依赖项,然后从该依赖项中更新和发布。

当然可以以这种方式使用 npm,尽管它可能不是它的预期用途。包的初始发布者将创建必要的结构,例如使用 npm init,然后执行 npm publish 以使其可供您的其他发布商使用。

有几件事需要考虑。首先,除非你有一个严格控制的轮流编辑系统,否则你几乎肯定会遇到合并冲突,即多个发布者同时进行更改。像 Git 这样的版本控制系统可以帮助解决这些冲突。

其次,出于多种原因,您可能不希望您的中间版本公开可用 - 您可能希望推出一些(可能不完整的)更改,供您的合作出版商在此基础上进行构建。或者您可能不希望您的代码在开发过程中随意使用。因此,如果您确实沿着这条路线走下去,您可能希望考虑使用私有存储库 - 例如Sinopia,或者托管解决方案之一。

希望对您有所帮助。有关信息,我结合使用了 mercurial(用于版本控制)和私有 npm 存储库(sinopia)。