开发相互依赖的 npm 包的最佳工作流程

Posted

技术标签:

【中文标题】开发相互依赖的 npm 包的最佳工作流程【英文标题】:Best workflow for developing npm packages that depend on each other 【发布时间】:2016-12-13 22:26:57 【问题描述】:

目前我们正在开发两个基于 React 的应用程序,例如 app-aapp-b,它们有两个我们也管理的依赖项。一个包含共享组件的shared-components 包和一个包含app-aapp-b 之间共享实用程序的shared-utilities 包。这两个都有自己的完整的package.json,并包含在app-aapp-b的package.json中。

依赖关系:

app-a|- shared-components|- shared-utilities

app-b|- shared-components|- shared-utilities

每次我们在 shared-components 中开发我们想要在 app-a 中使用的东西时,我们必须执行太多步骤:

    shared-components 中创建<AwesomeComponent />shared-components 中构建文件。 提交/推送到 GitHub。 package.json 中从app-a 指向特定分支的依赖关系。 运行npm install。 使用<AwesomeComponent />

如果我们在开发中犯了错误,我们需要从步骤 1 重新开始。当然我们可以通过将构建文件直接复制到 node_modules 文件夹来跳过提交/推送和 npm install,但仍然是这样每次我们构建组件时都很麻烦。

你们使用什么工作流程或任何提示/建议来加快本地开发?

注意;我们使用 webpack 来打包我们的文件并使用 babel 进行编译。

【问题讨论】:

【参考方案1】:

你想要的可能是npm link。

只需在shared-components 中使用sudo npm link 进行设置。这会在全局 npm 目录中创建符号链接(因此,如果您以 root 身份安装它,则需要提升权限)。

接下来您需要做的就是进入app-a 并运行npm link shared-components,它将用符号链接替换node_modules 中的文件夹。

【讨论】:

谢谢你!这正是我正在寻找的 :-) 遇到了一些权限错误,但我会解决这些问题。

以上是关于开发相互依赖的 npm 包的最佳工作流程的主要内容,如果未能解决你的问题,请参考以下文章

创建现代npm包的最佳实践

npm 链接多个本地(相互依赖)模块

私有 Typescript 库作为 npm 依赖项

npm包的更新说明,你还敢不看吗

npm 包的 发布 流程

yum工作原理