在项目之间共享反应组件的最简单方法是什么?



如何在多个 react 项目之间共享组件,而不必将它们发布在像 NPM 这样的公共包管理器上?

选项 1:您可以使用 npm 并使用私有包,这样它们就不会面向外部。还有一些项目工厂和作用域包,它们通常表示公司范围内的项目,可以是公共的,也可以是私有的。请参阅 https://docs.npmjs.com/private-modules/intro 和 https://docs.npmjs.com/misc/scope。

选项 2:本质上,您可以开发具有扁平结构的项目。然后,您可以将各种项目和/或组件导入到其他项目或文件夹中。这完全取决于您的代码库和配置。但是,使用这种模型,很多时候发布到 npm 是相当自然的,因为每个文件夹可能是自己的项目,有自己的 package.json。

更新:

选项 3:Bit 侧重于组件的可组合性,从按钮等小东西到实际视图和应用本身的所有内容,每个目标都是自己的包。总体而言,它是一个固执己见但可自定义的框架,可以实现更快的开发、托管依赖项和有组织的代码。

选项 4:RushJS 是由 Microsoft 构建的 monorepo 管理器,它允许在下面使用 pnpm(而不是 yarn 和 npm(灵活地使用不同类型的应用程序和服务,从而缓解由依赖问题引起的问题。

查看位:

Bit 是一个开源 cli 工具,用于跨项目和存储库协作处理隔离组件。使用 Bit 将设计库或项目中的分立元件分发到独立的可重用包中,并跨应用程序使用它。

你也可以将它们上传到一个私有的git存储库,比如Github,然后从那里把它们拉进来。

Ryanve在这里有一个很好的例子:https://stackoverflow.com/a/28729646/1592783

您可以创建共享组件的存储库,然后让 Node.js 启动脚本调用 shell 脚本以从该存储库执行 git 拉取,并将共享组件从该目录移动到项目的目录。这样,每次调用 run 'npm start' 时,您都会将最新版本的共享组件加载到您的项目中

最新更新