使用带有 Rollup 的节点模块来构建 Web 客户端
Using node modules with Rollup to build web client
我正在尝试使用 rollup 而不是 browserify 和 babel 来构建一个 React 应用程序。我意识到我需要使用 rollup-plugin-babel
来转换 jsx,但是当我告诉 rollup 格式是 iife
时,最终页面加载时出现错误:
Uncaught ReferenceError: React is not defined
我需要向 rollup.config.js
添加什么才能在我的最终构建中包含我在 package.json
中安装的节点模块?
两个选项:
- 将 React 作为单独的
<script>
标签包含在您的应用程序包之前
- 在您的配置文件中包含 rollup-plugin-node-resolve,以从您的
node_modules
文件夹中提取依赖项。
如果你采用第二条路线,你还需要 rollup-plugin-commonjs(将 CommonJS 模块转换为 ES 模块)。我 认为 您还需要将 import * as React from 'react'
添加到包含 JSX 的每个模块,否则您将继续收到 ReferenceError。
注意:您可以使用 rollup-plugin-buble 来转译 JSX。它类似于 Babel 插件但速度更快(尽管它不会转换每个 ES2015 功能)
我正在尝试使用 rollup 而不是 browserify 和 babel 来构建一个 React 应用程序。我意识到我需要使用 rollup-plugin-babel
来转换 jsx,但是当我告诉 rollup 格式是 iife
时,最终页面加载时出现错误:
Uncaught ReferenceError: React is not defined
我需要向 rollup.config.js
添加什么才能在我的最终构建中包含我在 package.json
中安装的节点模块?
两个选项:
- 将 React 作为单独的
<script>
标签包含在您的应用程序包之前 - 在您的配置文件中包含 rollup-plugin-node-resolve,以从您的
node_modules
文件夹中提取依赖项。
如果你采用第二条路线,你还需要 rollup-plugin-commonjs(将 CommonJS 模块转换为 ES 模块)。我 认为 您还需要将 import * as React from 'react'
添加到包含 JSX 的每个模块,否则您将继续收到 ReferenceError。
注意:您可以使用 rollup-plugin-buble 来转译 JSX。它类似于 Babel 插件但速度更快(尽管它不会转换每个 ES2015 功能)