0

我正在尝试使用汇总而不是 browserify 和 babel 构建一个反应应用程序。我意识到我需要使用rollup-plugin-babel来转换 jsx,但是当我告诉 rollup 格式为iife时,最终页面加载时出现错误:

Uncaught ReferenceError: React is not defined

我需要添加什么以包含我在最终构建中rollup.config.js安装的节点模块?package.json

4

1 回答 1

2

两种选择:

  1. <script>在你的 app bundle 之前包含 React 作为一个单独的标签
  2. 在您的配置文件中包含rollup-plugin-node-resolve,以从您的node_modules文件夹中提取依赖项。

如果您采用第二条路线,您还需要rollup-plugin-commonjs(将 CommonJS 模块转换为 ES 模块)。我认为您还需要添加import * as React from 'react'到包含 JSX 的每个模块,否则您将继续获得 ReferenceError。

注意:你也许可以使用rollup-plugin- buble 来转译 JSX。它类似于 Babel 插件,但速度更快(尽管它不会转换所有 ES2015 功能)

于 2016-06-08T02:57:59.590 回答