Не удается найти модуль «babel-core» и установлен «@babel-core»

#reactjs #npm #webpack #installation #babeljs

Вопрос:

я получаю эту ошибку при запуске npm run dev

ОШИБКА в ./src/app.js Сбой сборки модуля (из ./node_modules/babel-loader/lib/index.js): Ошибка: Не удается найти модуль «вавилонское ядро», требующий стека:

даже то, что я установил @babel-core, а не babel-core

вот мой .babelrc

 {
  "presets": [
    "@babel/preset-env",
    "@babel/preset-react"
  ]
}
 

и вот мой пакет.json

 {
  "name": "react-setup-tutorial",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack --mode=development",
    "build": "webpack --mode=production",
    "dev": "webpack-dev-server"
  },
  "browser": {
    "crypto": false,
    "fs": false,
    "path": false,
    "os": false,
    "net": false,
    "stream": false,
    "tls": false
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.14.6",
    "@babel/preset-env": "^7.14.7",
    "@babel/preset-react": "^7.14.5",
    "babel-loader": "^7.1.5",
    "css-loader": "^3.5.2",
    "sass-loader": "^8.0.2",
    "style-loader": "^1.1.3",
    "webpack": "^4.42.1",
    "webpack-cli": "^3.3.11",
    "webpack-dev-server": "^3.11.2"
  },
  "dependencies": {
    "@types/node": "^15.12.5",
    "react": "^16.13.1",
    "react-dom": "^16.13.1"
  },
  "engines": {
    "npm": ">3"
  }
 

Ответ №1:

даже то, что я установил @babel-core, а не babel-core

@babel/core это тот, который можно использовать , но он работает только с "babel-loader": "^8.x" , так package.json что в настоящее время вы ошибаетесь, потому что у него есть

 "babel-loader": "^7.1.5",
 

Если вы установите новейшую версию, вы должны быть готовы к работе.

Комментарии:

1. я сделал npm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack это, и теперь это "babel-loader": "^8.0.0-beta.0" , и это дает мне сейчас Error: Cannot find module 'babel-preset-env'

2. @ZiadAli, почему бета-версия? Самая последняя версия 8.2.2 . Это babel-preset-env означает, что что-то ссылается babel-preset-env (плагин babel 6.x) вместо @babel/preset-env (плагин babel 7.x). Конфигурация в вашем вопросе не вызовет этого, поэтому вам нужно будет просмотреть свои файлы, чтобы найти ссылки на этот неправильный плагин

3. ты прав, спасибо … я нашел env в своем webpack.config.js