ОШИБКА: Невозможно найти модуль babel-core. используя response.js, webpack и экспресс-сервер

84

Когда я запускаю webpackтерминал, я получаю:

Hash: efea76b1048c3a97b963
Version: webpack 1.12.13
Time: 33ms
    + 1 hidden modules

ERROR in Cannot find module 'babel-core'

Вот мой файл webpack.config.js

module.exports = {
  entry: './app-client.js',
  output: {
    filename: 'public/bundle.js'
  },
  module: {
    loaders: [
      {
        exclude: /(node_modules|app-server.js)/,
        loader: 'babel'
      }
    ]
  }
}

package.json

{
  "name": "react",
  "version": "1.0.0",
  "description": "React polling app",
  "main": "app-client.js",
  "dependencies": {
    "babel-loader": "^6.2.2",
    "bootstrap": "^3.3.6",
    "express": "^4.13.4",
    "react": "^0.14.7"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
Ричард Бустос
источник

Ответы:

155

Вы должны установить babel-loader и babel-core как dev-dependency при установке npm.

npm install babel-core babel-loader --save-dev
Четан
источник
работал как шарм! не забудьте добавить его в свой, packag.jsonчтобы не столкнуться с этой проблемой снова. Запуск npm install с флагом -Sвыполнит свою работу.
andilabs
4
Я все еще получаю:Error: Cannot find module '@babel/core' babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'
pguardiario
3
Похоже, что загрузчику v8 требуется ядро ​​v7, но ядро ​​v7 в настоящее время только что betaвыпустило, что похоже на недосмотр со стороны сопровождающих. Я вручную указал 7.1.5для babel-loader(последняя версия, которая сейчас отсутствует), и я работаю
Брайан Андервуд
43

Для тех, кто хочет использовать babel-loader 8+: он требует Babel 7.x ,, который должен быть установлен как пакет '@ babel / core' вместо 'babel-core'. Другими словами, запустите:

npm install --save-dev @babel/core
CounterFlame
источник
2
Тогда я полагаю, вы не используете babel-loader 8+. Я ответил на это для людей, которые обновляют / запускают новый проект, но не понимают, почему он не работает из-за переименования пакета. Нет необходимости понижать голос, пока четко указано, к какой версии он применяется.
CounterFlame
12

Я как раз встречаю эту ошибку и решаю установкой babel-core. Но интересно то, что я обнаружил, что babel-core действительно существует в peerDependencies babel-loader.

https://github.com/babel/babel-loader/blob/master/package.json

Почему peerDependecies не устанавливаются автоматически, после нескольких поисков я нашел это в блоге npm.

peerDependencies больше не будет устанавливаться автоматически.

theJian
источник
6

Добавление к ответу @ Chetan в этой теме:

Я столкнулся с этой проблемой сегодня, просматривая здесь книгу доктора Акселя Раушмайера . Каждую книгу также babel-loaderследует скачать babel-core. Однако когда я попробовал, это не тот случай. Я думаю, что это связано с ответом @ theJian.

Поскольку исходный package.json уже указан babel-loaderкак зависимость, выполнение следующей команды устранило ошибку.

npm install babel-core --save-dev
Бханупракаш Д.
источник
3
npm install babel-register

Это может решить вашу проблему. Кроме того, добавьте babelrc .babelrc {"presets": ["es2015", "react"]}

патилнитин
источник
6
Почему? Не могли бы вы объяснить, почему это сработает?
Эрик Хепперле - CodeSlayer2010,