ERREUR dans Impossible de trouver le module 'babel-core'. en utilisant react.js, webpack et serveur express


84

Chaque fois que je cours webpackdans le terminal, j'obtiens:

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

ERROR in Cannot find module 'babel-core'

Voici mon fichier 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"
}

Réponses:


154

Vous devez installer babel-loader et babel-core en tant que dépendance dev pendant l'installation de npm.

npm install babel-core babel-loader --save-dev

a fonctionné comme un charme! N'oubliez pas de l'ajouter à votre packag.jsonpour éviter de rencontrer à nouveau ce problème. Courir npm install avec le drapeau -Sfera l'affaire.
andilabs

4
Je reçois toujours: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
Il semble que le chargeur v8 ait besoin du noyau v7, mais le noyau v7 n'a actuellement qu'une betaversion, ce qui semble être un oubli des responsables. J'ai spécifié manuellement 7.1.5pour babel-loader(la dernière version qui est sortie en ce moment) et je suis en marche
Brian Underwood

42

Pour ceux qui souhaitent utiliser babel-loader 8+: il nécessite Babel 7.x ,, qui doit être installé en tant que package '@ babel / core' au lieu de 'babel-core'. En d'autres termes, exécutez:

npm install --save-dev @babel/core

2
Alors je suppose que vous n'utilisez pas babel-loader 8+. J'ai répondu à cela pour les personnes qui mettent à niveau / démarrent un nouveau projet mais ne réalisent pas pourquoi cela ne fonctionne pas à cause du renommage du package. Inutile de voter contre alors qu'il est clairement indiqué à quelle version il s'applique.
CounterFlame

12

Je viens de rencontrer cette erreur et je l'ai résolu en installant babel-core. Mais ce qui est intéressant, c'est que j'ai trouvé que babel-core existe dans les peerDependencies de babel-loader.

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

Pourquoi peerDependecies ne s'installe pas automatiquement, après quelques recherches, j'ai trouvé cela dans le blog npm.

peerDependencies ne s'installera plus automatiquement.


6

Ajout à la réponse de @ Chetan sur ce fil:

Je suis tombé sur ce problème aujourd'hui en parcourant le livre du Dr Axel Rauschmayer ici . Par livre, babel-loaderdevrait également être téléchargé babel-core. Cependant, ce n'est pas le cas lorsque je l'ai essayé. Je pense que cela se rapporte à la réponse de @ theJian.

Étant donné que le package.json d'origine est déjà répertorié babel-loadercomme dépendance, l'exécution de la commande suivante a résolu l'erreur.

npm install babel-core --save-dev

2
npm install babel-register

Cela peut résoudre votre problème. De plus, ajoutez babelrc .babelrc {"presets": ["es2015", "react"]}


6
Pourquoi? Pouvez-vous expliquer pourquoi cela fonctionnerait?
Eric Hepperle - CodeSlayer2010
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.