загрузчик babel не распознает код ES6 в приложении React - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь настроить веб-пакет с приложением реагировать. В моем случае я не использую приложение create-реагировать на приложения, поэтому я пытаюсь все настроить самостоятельно. Я вижу эту ошибку:

Не признается объявление члена

и это:

Не распознает () => синтаксис

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

Я все еще новичок в вебпаке и загрузчиках, поэтому любая помощь приветствуется.

Ответы [ 3 ]

0 голосов
/ 29 марта 2019

Измените свой код на

componentDidMount(){
        const posts = fetch('https://jsonplaceholder.typicode.com/posts')
            .then(response => response.json())
            .then(data => alert(data))

}
0 голосов
/ 29 марта 2019

Попробуйте использовать плагин свойств класса babel .

0 голосов
/ 29 марта 2019

babel и т. Д. Должны быть devDependencies в вашем package.json.Попробуйте добавить babel-polyfill в ваши зависимости от разработчиков.

...