Трассировка: тип узла SpreadProperty был переименован в SpreadElement в Object.isSpreadProperty

Я запускаю приложение реагирования, и вот моя конфигурация Webpack:

'use strict'

const ExtractPlugin = require('extract-text-webpack-plugin')
const HTMLPlugin = require('html-webpack-plugin')
module.exports = {
    devtool: 'eval',
    entry: '${__dirname}/src/main.js',
    output: {
        filename: 'bundle-[hash].js',
        path: '${__dirname}/build',
        publicPath: '/',
    },
    mode: 'development',
    performance: {
        hints: false
    },
    plugins: [
        new HTMLPlugin(),
        new ExtractPlugin('bundle-[hash].css'),
    ],
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_module/,
                loader: 'babel-loader',
            },
            {
                test: /\.scss$/,
                loader: ExtractPlugin.extract(['css-loader', 'sass-loader']),
            },
        ],
    },
}

Затем у меня есть файл package.json, здесь есть зависимости:

"devDependencies": {
    "@babel/core": "^7.1.6",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
    "@babel/preset-env": "^7.1.6",
    "@babel/preset-react": "^7.0.0",
    "and": "0.0.3",
    "babel-cli": "^6.26.0",
    "babel-core": "^7.0.0-bridge.0",
    "babel-loader": "^8.0.4",
    "eslint": "^5.9.0",
    "install": "^0.12.2",
    "jest": "^23.6.0",
    "npm": "^6.4.1",
    "webpack-cli": "^3.1.2"
  },
  "dependencies": {
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-env": "^1.7.0",
    "css-loader": "^1.0.1",
    "extract-text-webpack-plugin": "^4.0.0-beta.0",
    "html-webpack-plugin": "^3.2.0",
    "node-sass": "^4.11.0",
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "resolve-url-loader": "^3.0.0",
    "sass-loader": "^7.1.0",
    "webpack": "^4.25.1",
    "webpack-dev-server": "^3.1.10"
  } 

Я перепробовал множество способов обновления пакетов babel до 7-й версии, изменения конфигурации babelrc, что угодно.

Проект хоть и компилируется, но в начале компиляции я получаю следующее сообщение:

Трассировка: тип узла SpreadProperty был переименован в SpreadElement в Object.isSpreadProperty

И около сотни таких строк. После того, как все эти строки будут распечатаны, процесс компиляции продолжается и завершается успешно.

Что это и как я могу избавиться от этих строк?

Ответ 1

Здесь аналогичная проблема была решена

Ответ 2

В моем случае я не реализовывал конфигурацию Webpack, и все же была ошибка. После того, как было реализовано так много решений, ошибка была той же самой, или как только ошибка была удалена, появилась другая. Наконец, я удалил .bablerc, .babelrc и package-lock.json и запустил rm -rf node_modules && npm install а затем запустил rm -rf node_modules && npm install react-native run-android и это сработало для меня. :-)

Ответ 3

вот последняя настройка, которая решила проблему для меня.

.babelrc

{
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "plugins": [
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

Для лучшего понимания, вот мой package.json devDependencies:

"devDependencies": {
    "@babel/core": "^7.1.6",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
    "@babel/plugin-transform-object-assign": "^7.0.0",
    "@babel/plugin-transform-react-jsx": "^7.1.6",
    "@babel/preset-env": "^7.1.6",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "8.0.4",
    "prop-types": "15.6.2",
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "style-loader": "^0.23.1",
    "utils": "^0.3.1",
    "webpack": "4.26.1",
    "webpack-cli": "3.1.2",
    "webpack-dev-server": "^3.1.10"
  }

Вот мой раздел модуля webpack.config.js:

module: {
        rules: [
            {
                test: /\.(js|jsx)$/ ,
                exclude: /node_modules/,
                loaders: "babel-loader"
            }
        ]
    }

Ответ 4

Раньше в моем .babelrc

я использовал плагин: ["transform-object-rest-spread", { "useBuiltIns": true }],

затем я переключаю его на "@babel/plugin-proposal-object-rest-spread" и все эти предупреждения ушли, что было очень приятно. '