【问题标题】:React is undefined while using rollup to bundle as esm使用汇总捆绑为 esm 时,React 未定义
【发布时间】:2020-08-12 16:06:40
【问题描述】:

我没有为开发中的 rollup react 应用程序提供一个包,而是将其拆分为两个包。一个用于依赖项,一个用于应用程序本身。

这样,监视模式保持快速(因为它现在不必连续解析依赖项)并且我不必为 React 等库编写(或使用第三方)es 模块包装器。

虽然捆绑代码没有任何错误,但我在运行它时遇到了TypeError: React is undefined。当我在开发者工具中检查网络面板时,我确实看到依赖包正在下载。

Here 是我通过其 API 使用汇总的方式。 剩下的可以看相关代码here

谁能指出我做错了什么?任何帮助表示赞赏!

【问题讨论】:

  • 我不确定你是否可以将 React cjs 解析为 esm,因为 React 已经构建为 cjs。然后你可以通过查看你的 dep 包文件来检查。
  • @tmhao2005 我的意思是当我创建一个包时它工作得很好。问题似乎来自 React DOM。

标签: javascript reactjs bundling-and-minification rollupjs


【解决方案1】:

这是最新 @rollup/plugin-commonjs 版本 (14.0.0) 中的错误。它已通过合并 this PR 得到修复,但尚未发布到 NPM。我从 GitHub 构建了最新版本,并将它与相关的 repo 一起使用,React 现在可以工作了。

所以目前的解决方案是在下一个版本发布之前使用 GH 上的最新源代码。

【讨论】:

    猜你喜欢
    • 2018-09-09
    • 2017-09-26
    • 2018-12-03
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2020-09-15
    • 2018-12-19
    相关资源
    最近更新 更多