ERROR en No se puede encontrar el módulo 'babel-core'. usando react.js, webpack y express server

84

Siempre que corro webpacken la terminal obtengo:

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

ERROR in Cannot find module 'babel-core'

Aquí está mi archivo 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"
}
Richard Bustos
fuente

Respuestas:

154

Debe instalar babel-loader y babel-core como dependencia de desarrollo mientras npm install.

npm install babel-core babel-loader --save-dev
Chetan
fuente
¡trabajado como un encanto! recuerde agregarlo a su packag.jsonpara evitar enfrentar este problema nuevamente. Correr npm install con bandera -Shará el trabajo.
andilabs
4
Sigo recibiendo: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
Parece que el cargador v8 necesita el núcleo v7, pero el núcleo v7 actualmente solo tiene una betaversión, que parece un descuido de los mantenedores. He especificado manualmente 7.1.5para babel-loader(la última versión que está fuera en este momento) y estoy fuera de funcionamiento
Brian Underwood
42

Para aquellos que quieran usar babel-loader 8+: requiere Babel 7.x ,, que debe instalarse como el paquete '@ babel / core' en lugar de 'babel-core'. En otras palabras, ejecuta:

npm install --save-dev @babel/core
CounterFlame
fuente
2
Entonces supongo que no estás usando babel-loader 8+. Respondí esto para las personas que están actualizando / comenzando un nuevo proyecto pero no se dan cuenta de por qué no funciona debido al cambio de nombre del paquete. No es necesario votar en contra mientras se indica claramente a qué versión se aplica.
CounterFlame
12

Acabo de encontrar este error y lo solucioné instalando babel-core. Pero lo interesante es que descubrí que babel-core existe en las peerDependencies de babel-loader.

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

Por qué peerDependecies no se instala automáticamente, después de algunos trabajos de búsqueda encontré esto en el blog de npm.

peerDependencies ya no se instalará automáticamente.

theJian
fuente
6

Agregando a la respuesta de @ Chetan en este hilo:

Me encontré con este problema hoy mientras seguía el libro del Dr. Axel Rauschmayer aquí . Por libro, también babel-loaderdebería descargarse babel-core. Sin embargo, este no es el caso cuando lo probé. Creo que esto se relaciona con la respuesta de @ theJian.

Dado que el package.json original ya aparece babel-loadercomo dependencia, ejecutar el siguiente comando resolvió el error.

npm install babel-core --save-dev
Bhanuprakash D
fuente
2
npm install babel-register

Esto puede resolver su problema. Además, agregue babelrc .babelrc {"presets": ["es2015", "react"]}

patilnitina
fuente
6
¿Por qué? ¿Puede dar alguna explicación de por qué esto funcionaría?
Eric Hepperle - CodeSlayer2010