FEHLER in Modul 'Babel-Core' kann nicht gefunden werden. Verwenden von react.js, Webpack und Express-Server

84

Immer wenn ich webpackim Terminal renne, bekomme ich:

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

ERROR in Cannot find module 'babel-core'

Hier ist meine Datei 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
quelle

Antworten:

153

Sie sollten Babel-Loader und Babel-Core als Dev-Abhängigkeit installieren, während npm installiert wird.

npm install babel-core babel-loader --save-dev
Chetan
quelle
Lief wie am Schnürchen! Denken Sie daran, es zu Ihrem hinzuzufügen, um packag.jsonzu vermeiden, dass dieses Problem erneut auftritt . Laufen npm install mit Flagge -Swird den Job machen.
Andilabs
4
Ich bekomme immer noch: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
Es scheint, als ob Loader v8 Core v7 benötigt, aber Core v7 hat derzeit nur eine betaVersion, die wie ein Versehen der Betreuer erscheint. Ich habe manuell angegeben 7.1.5für babel-loader(die neueste Version, die gerade herauskommt) und ich bin los und laufe
Brian Underwood
41

Für diejenigen, die Babel-Loader 8+ verwenden möchten: Es erfordert Babel 7.x ,, das als '@ babel / core'-Paket anstelle von' babel-core 'installiert werden soll. Mit anderen Worten, führen Sie Folgendes aus:

npm install --save-dev @babel/core
CounterFlame
quelle
1
Ich brauchte npm babel-core installieren --save-dev, um meinen Fehler zu beheben
Sprose
2
Dann verwenden Sie wohl keinen Babel-Loader 8+. Ich habe dies für Leute beantwortet, die gerade ein neues Projekt aktualisieren / starten, aber nicht wissen, warum es aufgrund der Umbenennung des Pakets nicht funktioniert. Sie müssen nicht abstimmen, solange klar angegeben ist, für welche Version sie gilt.
CounterFlame
12

Ich habe gerade diesen Fehler festgestellt und durch die Installation von babel-core behoben. Aber das Interessante ist, dass ich festgestellt habe, dass Babel-Core in den PeerDependencies von Babel-Loader vorhanden ist.

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

Warum sich PeerDependecies nicht automatisch installieren lassen, fand ich dies nach einigen Sucharbeiten im npm-Blog.

peerDependencies werden nicht mehr automatisch installiert.

theJian
quelle
6

Hinzufügen zu @ Chetans Antwort auf diesen Thread:

Ich bin heute auf diese Ausgabe gestoßen, als ich das Buch von Dr. Axel Rauschmayer hier durchgesehen habe . Pro Buch babel-loadersollte auch heruntergeladen babel-corewerden. Dies ist jedoch nicht der Fall, als ich es ausprobiert habe. Ich denke, das bezieht sich auf die Antwort von @ theJian.

Da die ursprüngliche package.json bereits babel-loaderals Abhängigkeit aufgeführt ist, wurde der Fehler durch Ausführen des folgenden Befehls behoben.

npm install babel-core --save-dev
Bhanuprakash D.
quelle
2
npm install babel-register

Dies kann Ihr Problem lösen. Fügen Sie außerdem babelrc .babelrc {"presets" hinzu: ["es2015", "react"]}

Patilnitin
quelle
6
Warum? Können Sie erklären, warum dies funktionieren würde?
Eric Hepperle - CodeSlayer2010