Babel 编译 React 项目遇到 Unexpected token “<” 怎么办?

· 约 4 分钟读完

在使用 React 进行前端开发时,我们通常会使用 Babel 来将我们的 JSX 语法转译成纯 JavaScript。但是在实际开发中,我们有时候会遇到一个令人困惑的问题:当执行编译后的代码时,会出现 Unexpected token “<” 的错误。这个错误是怎么发生的?我们应该怎么解决呢?

问题原因

这个错误通常是由于在 JSX 语法上没有使用正确的 Babel 插件所致。在我们使用 JSX 时,本质上是在 JavaScript 中嵌入了 XML 语法。但是,JavaScript 引擎无法理解这种语法,因此我们需要借助 Babel 将 JSX 转译成 JavaScript。

不过,Babel 并不能自动识别 JSX 语法。需要使用 @babel/plugin-transform-react-jsx 进行转译。问题就出在了这里。如果我们没有在 Babel 配置中加入这个插件,那么就会出现这个错误。

解决方法

解决这个问题的方法很简单。我们只需要在项目中安装 @babel/plugin-transform-react-jsx,并在 .babelrc 文件中配置插件即可。

安装插件

我们可以使用 npm 或者 yarn 安装插件:

配置插件

在 .babelrc 文件中添加插件的配置。

这里我们已经使用 @babel/preset-react 这个预设来启用了 JSX 的支持。同时我们添加了 @babel/plugin-transform-react-jsx 插件。这样就可以解决出现 Unexpected token “<” 错误了。

示例代码

以下是一个简单的 React 组件,它将 Hello, World! 渲染到屏幕上。这个组件使用了 JSX 语法。

使用 Babel 转译后的代码如下:

我们可以看到,JSX 语法已经成功被转化为了纯 JavaScript(使用 React.createElement() 方法)。

结语

Babel 是 React 生态圈中的一个重要组件,它帮助我们将 JSX 语法转化成有效的 JavaScript 代码。当出现 Unexpected token “<” 错误时,我们应该考虑是否在 Babel 配置中正确地配置了插件。只需要安装 @babel/plugin-transform-react-jsx 并在 .babelrc 中配置即可。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67bea3590c976d473a2b85d8