gpt4 book ai didi

javascript - 未捕获的语法错误 : Unexpected token in import React from 'react'

转载 作者:行者123 更新时间:2023-11-28 14:21:40 25 4
gpt4 key购买 nike

我曾经使用create-react-app编写一个react应用程序,没有任何问题。但是,我尝试仅使用index.html和app.js制作一个小应用程序。 Chrome 中的错误为 importJSX 。对于 import , Uncaught SyntaxError: Unexpected token对于 JSX,Uncaught SyntaxError: Unexpected token <是不是因为我没有安装BABEL或者ES6。

我尝试安装babel,但还是不行。我还尝试添加 type="text/babel"

index.html

<!Doctype html>
<html>

<head>
<title>Social Card</title>
<meta charset="utf-8" />
</head>
<body>
<h1>content fahafafafaddha</h1>
<div id="root">
</div>
<script src= "app.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
</body>
</html>

app.js

import React from 'react'
import ReactDOM from 'react-dom'
ReactDOM.render(
<h1> Hello</h1>,
document.getElementById('root')
)

最佳答案

这个错误肯定是因为你的代码还没有被转译(这就是 babel 所做的)。你说你安装了 babel..这是什么意思?您需要配置 babel,以便它在运行代码之前转换您的代码。 create-react-app 通过使用 webpack 来转换、捆绑和缩小您的代码来为您完成此任务。

如果您想了解有关工作原理以及如何配置应用程序的详细信息,请创建一个新的 create-react-app,然后运行 ​​

npm run pop

这将弹出所有以前隐藏的配置并帮助您了解事物的运作方式。

更新

你可以尝试的一件事是安装所有 babel-cli

npm install --save-dev @babel/core @babel/cli

然后你就可以像这样使用它

npx babel app.js --out-file app-compiled.js

并使用应用程序编译来运行服务器。

更新2

您正在使用 ES6 语法(导入语句)以及 JSX(在 javascript 文件中使用 HTML-ish 代码)。这段代码无法直接由 JS 编译器编译,这就是为什么它会显示上述错误。为了解决这个问题,您需要将其转换为浏览器可以读取的 JS。有多种方法可以做到这一点,其中一些是:

  • 使用 webpack 来转换、缩小、捆绑代码并将其注入(inject)到 html 中。

  • 使用 babel-cli 手动转译代码,然后导入转译后的文件

  • 按原样使用 babel 独立版 explained here

至于我所说的使用 app-compiled 的意思,我的意思是在你的文件中包含 babel-cli 命令的输出文件(app-compile.js 如果你运行了我上面写的命令) html 而不是 app.js

关于javascript - 未捕获的语法错误 : Unexpected token in import React from 'react' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54968950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com