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"
}

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

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

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.


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

2
npm install babel-register

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


6
Warum? Können Sie erklären, warum dies funktionieren würde?
— Eric Hepperle - CodeSlayer2010
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.