【问题标题】:Create npm package with react components that exports to vanilla javascript使用导出到 vanilla javascript 的反应组件创建 npm 包
【发布时间】:2021-01-12 17:03:59
【问题描述】:

我的公司有几个不同的网站,大部分都有 React 前端,但也有几个没有。

我们想要构建一个可以在任何地方导入和使用的 cookie bar...基本上它应该是独立于框架的,最好是一个 npm 包。

我不完全确定这是否可能,但我有想法用 react 构建 cookie bar 包......它会超级简单,只需几个带有 jsx 和样式的组件,一旦完成,使用 webpack 将其全部编译成独立于 react 的 vanilla javascript,并且可以插入到任何具有任何框架或没有框架的站点上。

cookie 栏的所有 html(最初会被编写为 react components / jsx,但随后使用 webpack 编译成 vanilla JS),然后将被注入到包含脚本的网站的 html 中。

这可能吗?

我在网上只能找到人们将 react 组件制作为 npm 包,但这并不是我想要实现的目标。

提前致谢!

【问题讨论】:

    标签: javascript reactjs webpack


    【解决方案1】:

    这是绝对可能的。

    如果目标页面中根本没有 React,您可能希望将其捆绑为一个小应用程序并像在 the answers here 中一样挂载它。如果它确实有 React,您可能可以通过将现有的 React 放在其他代码中的窗口上来使用现有的 React (import React from 'react'; window.React = React.

    对于捆绑单个组件或几个组件,Rollup 可能比 Webpack 更幸运(它们有不同的用例;两者都是捆绑器,但 Rollup 有一些专门用于捆绑库的细节)。 This example 可能有用(它还包括 Sass、Storybook 和其他一些您可能需要或不需要的附加功能)。这将为您提供更大的灵活性和可能更小的捆绑包,但意味着您仍然需要一个 React 应用程序来实际导入和使用组件,如上所述。

    【讨论】:

      【解决方案2】:

      由于您的项目范围很小,因此不应导入或嵌入整个反应库。

      我强烈建议您检查 Preactjs (https://preactjs.com/),它可以让您在 JSX 中编写代码,但占用空间要轻得多(3kB atm)。您的组件将加载得更快,尤其是对于移动用户

      然后与其他答案中推荐的工具捆绑在一起(汇总很棒)是要走的路

      【讨论】:

      • 这也是我应该提到的一个很好的选择:)
      猜你喜欢
      • 2019-09-09
      • 2021-04-18
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 2020-02-29
      相关资源
      最近更新 更多