Javascript CreateReactApp:在运行时嵌入最终用户插件
我们使用CreateReactApp创建/部署了一个React应用程序 这个应用程序能够显示一些小部件。我们已经使用自己的应用程序部署了预定义类型的小部件。我们希望应用程序的最终用户能够使用Webstorm/VisualStudio等开发工具开发自己类型的小部件,并将其部署到我们的应用程序中Javascript CreateReactApp:在运行时嵌入最终用户插件,javascript,reactjs,webpack,create-react-app,Javascript,Reactjs,Webpack,Create React App,我们使用CreateReactApp创建/部署了一个React应用程序 这个应用程序能够显示一些小部件。我们已经使用自己的应用程序部署了预定义类型的小部件。我们希望应用程序的最终用户能够使用Webstorm/VisualStudio等开发工具开发自己类型的小部件,并将其部署到我们的应用程序中 我们的应用程序需要提供一个公共API和一个插件开发库 我们希望插件能够使用我们的应用程序正在使用的库(例如React、materialui…) 我们需要一种方法来“加载”使用我们的公共API注册新小部件类型
做这件事的最佳实践是什么?我有更多的建议而不是答案,最佳实践可能取决于您当前项目的结构,因此我认为没有正确的答案。我写了一个小的概念证明,如果有帮助的话,可以随意使用:
package.json
如果您希望允许用户使用自己的libs,那么在运行时如何处理它会增加一些复杂性
在这种方法中,您可以使用create-react-app,但您可能需要一个入口点的良好定义(在我的示例项目中,我使用
Index.js
作为我将用作项目主要组件的文件),或者某种描述符(可能扩展package.json
)因此,您可以阅读应用程序中的内容,以了解如何加载组件。我会使用第一种方法,约定优于配置
更简单,您可以在以后使用描述符进行扩展。通过弹出,您可以自定义您想要的任何内容,但您必须自己配置和维护它,我认为基于您的标准,使用CreateReactApp也是一个好主意。我希望这能帮助你
谢谢大家!!
MSS-他们可以将小部件发布到npm(或私人注册表),应用程序可以使用它。@Marc Polizzi也许你可以提供一些使用场景?理想的工作流程是什么?比如,用户注册了一些小部件。之后会发生什么,对应用程序有什么影响?