ERRORE in Impossibile trovare il modulo "babel-core". utilizzando react.js, webpack ed express server


84

Ogni volta che corro webpacknel terminale ottengo:

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

ERROR in Cannot find module 'babel-core'

Ecco il mio file 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"
}

Risposte:


155

Dovresti installare babel-loader e babel-core come dev-dependency durante l'installazione di npm.

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

ha funzionato a meraviglia! ricordati di aggiungerlo al tuo packag.jsonper evitare di affrontare nuovamente questo problema. Correre npm install con la bandiera -Sfarà il lavoro.
andilabs

4
Ricevo ancora: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
Sembra che il loader v8 abbia bisogno del core v7, ma al momento core v7 ha solo una betaversione, che sembra una svista da parte dei manutentori. Ho specificato manualmente 7.1.5per babel-loader(l'ultima versione disponibile in questo momento) e sono in funzione
Brian Underwood

43

Per coloro che vogliono usare babel-loader 8+: richiede Babel 7.x, che deve essere installato come pacchetto "@ babel / core" invece di "babel-core". In altre parole, esegui:

npm install --save-dev @babel/core

2
Quindi immagino che tu non stia usando babel-loader 8+. Ho risposto a questo per le persone che stanno aggiornando / avviando un nuovo progetto ma non si rendono conto del motivo per cui non funziona a causa della ridenominazione del pacchetto. Non c'è bisogno di downvote mentre è chiaramente indicato a quale versione si applica.
CounterFlame

12

Ho appena incontrato questo errore e l'ho risolto installando babel-core. Ma la cosa interessante è che ho scoperto che babel-core esiste nelle dipendenze peer-loader di babel.

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

Perché peerDependecies non installano automaticamente, dopo un lavoro di ricerca alcuni ho trovato questo nel blog NPM.

peerDependencies non si installerà più automaticamente.


6

Aggiunta alla risposta di @ Chetan su questo thread:

Oggi mi sono imbattuto in questo problema mentre seguivo il libro del dottor Axel Rauschmayer qui . Per libro, babel-loaderdovrebbe essere scaricatobabel-core . Tuttavia questo non è il caso quando l'ho provato. Penso che questo si riferisca alla risposta di @ theJian.

Poiché il package.json originale elenca già babel-loadercome dipendenza, l'esecuzione del seguente comando ha risolto l'errore.

npm install babel-core --save-dev

3
npm install babel-register

Questo può risolvere il tuo problema. Inoltre, aggiungi babelrc .babelrc {"preset": ["es2015", "react"]}


6
Perché? Puoi dare qualche spiegazione sul motivo per cui dovrebbe funzionare?
Eric Hepperle - CodeSlayer2010
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.