ReactJS 中的语法错误
Syntax error in ReactJS
我开始学习ReactJS,我正在按照一本关于入门的书中的说明进行操作。我的目录结构如下所示:
app/App.js
node_modules
index.html
package.json
webpack.config.js
我认为问题的罪魁祸首是来自CLI的以下错误消息:
ERROR in ./app/App.js
Module build failed: SyntaxError: c:/code/pro-react/my-app/app/App.js: Unexpected token (6:6)
4 | render() {
5 | return (
> 6 | <h1>Hello World</h1>
| ^
7 | );
8 | }
9 | }
App.js
的内容是:
import React from 'react';
class Hello extends React.Component {
render() {
return (
<h1>Hello World</h1>
);
}
}
React.render(<Hello />, document.getElementById('root'));
以下是package.json
的内容:
{
"name": "my-app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node_modules/.bin/webpack-dev-server --progress",
"test": "echo '"Error: no test specified'" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"babel-core": "^6.4.5",
"babel-loader": "^6.2.1",
"webpack": "^1.12.11",
"webpack-dev-server": "^1.14.1"
},
"dependencies": {
"react": "^0.14.6"
}
}
webpack.config.js
的内容是:
module.exports = {
entry: __dirname + "/app/App.js",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [{
test: /'.jsx?$/,
loader: 'babel'
}]
}
};
我使用以下命令从 CLI 启动应用程序:
npm start
当我转到开发工具中的http://localhost:8080
时,出现一条错误消息:
GET http://localhost:8080/bundle.js 404 (Not Found)
但正如我所说,我认为罪魁祸首是它不喜欢语法,所以它不会制作bundle.js
文件。请让我知道我做错了什么。
我认为发生这种情况是因为您在没有babel presets
的情况下使用babel-6
,在这种情况下,您需要babel-preset-es2015
和babel-preset-react
。
# For ES6/ES2015 support
npm install babel-preset-es2015 --save-dev
# Fot JSX support
npm install babel-preset-react --save-dev
然后更改webpack
配置
{
test: /'.jsx?$/,
loader: 'babel',
query: {
presets: ['es2015', 'react'],
}
}
或者,您可以创建包含内容的.babelrc
文件,而不是使用query
{
"presets": ["es2015", "react"]
}
您还需要安装react-dom
并使用ReactDOM.render
instaed 或 React.render
相关文章:
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 未捕获错误:语法错误,无法识别的表达式:input[@type=submit]
- jQuery AJAX Post方法错误(语法错误)
- 如何“;修复解析错误:语法错误,意外'{'in”用于php
- 错误:错误:语法错误,无法识别的表达式:
- 未捕获错误:语法错误,无法识别的表达式:ajaxsample/update_agenda(CodeIgniter)
- 未捕获错误:语法错误,无法识别表达式Jquery选择器单引号与双引号
- Javascript ( jQuery ) 错误: 语法错误: 缺少 ) 在参数列表之后
- 错误:语法错误:令牌“”,“”是意外的标记
- 未捕获的错误:语法错误,无法识别的表达式:输入:复选框[名称=ninja_forms_field_57[术语]]
- 未捕获的错误:语法错误,无法识别的表达式:“.b-brand-box”
- 未捕获的错误:语法错误,无法识别的表达式:href
- ReactJS 返回解析器错误语法错误:在 AJAX 调用 JAVA servlet 后出现意外的标记 a
- jQuery:未捕获错误:语法错误,无法识别的表达式
- j查询错误 - 语法错误:缺少:在属性 ID 之后
- 在使用 Gulp 在 javascript 中声明对象时,在 Git bash 中出现以下错误“语法错误:意外标识符”
- 获取未捕获错误:语法错误、无法识别的表达式
- 获取错误语法错误:属性列表 url 后缺少 }:http://localhost/mcportal/public/pos
- 为什么我收到错误“语法错误:非法字符”
- 未捕获错误:语法错误,无法识别的表达式