babel 加载器无法识别 React 应用程序中的 ES6 代码
babel loader not recognizing ES6 code in React app
我正在尝试使用 React 应用程序设置 webpack。就我而言,我没有使用 create-react-app,所以我尝试自己设置。我看到这个错误:
Not recognizing member declaration
还有这个:
Not recognizing ()=> syntax
This is what I have in package.json:
{
"name": "testapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"webpack": "webpack"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0"
}
}
这是我的webpack.config.js:
module.exports = {
mode: 'development',
context: __dirname,
entry: './index.js',
output: {
path: __dirname + '/dist',
filename: 'bundle.js'
},
watch: true,
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['babel-preset-env', 'babel-preset-react']
}
}
}
]
}
}
这是我的组件使用的代码:
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component {
state = {
posts: []
}
componentDidMount = () => {
const posts = fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => alert(data))
}
render() {
return (
<div>this is home</div>
)
}
}
export default App
我对 webpack 和 loader 还是个新手,所以非常感谢您的帮助。
babel 等需要是你 package.json 中的 devDependencies。尝试将 babel-polyfill 添加到您的开发依赖项中。
将代码更改为
componentDidMount(){
const posts = fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => alert(data))
}
我正在尝试使用 React 应用程序设置 webpack。就我而言,我没有使用 create-react-app,所以我尝试自己设置。我看到这个错误:
Not recognizing member declaration
还有这个:
Not recognizing ()=> syntax
This is what I have in package.json:
{
"name": "testapp",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"webpack": "webpack"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"webpack": "^4.29.6",
"webpack-cli": "^3.3.0"
}
}
这是我的webpack.config.js:
module.exports = {
mode: 'development',
context: __dirname,
entry: './index.js',
output: {
path: __dirname + '/dist',
filename: 'bundle.js'
},
watch: true,
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules)/,
use: {
loader: 'babel-loader',
options: {
presets: ['babel-preset-env', 'babel-preset-react']
}
}
}
]
}
}
这是我的组件使用的代码:
import React from 'react'
import ReactDOM from 'react-dom'
class App extends React.Component {
state = {
posts: []
}
componentDidMount = () => {
const posts = fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => alert(data))
}
render() {
return (
<div>this is home</div>
)
}
}
export default App
我对 webpack 和 loader 还是个新手,所以非常感谢您的帮助。
babel 等需要是你 package.json 中的 devDependencies。尝试将 babel-polyfill 添加到您的开发依赖项中。
将代码更改为
componentDidMount(){
const posts = fetch('https://jsonplaceholder.typicode.com/posts')
.then(response => response.json())
.then(data => alert(data))
}