ข้อผิดพลาดในไม่พบโมดูล 'babel-core' โดยใช้ react.js, webpack และเซิร์ฟเวอร์ด่วน


84

เมื่อใดก็ตามที่ฉันวิ่งwebpackในเทอร์มินัลฉันจะได้รับ:

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

ERROR in Cannot find module 'babel-core'

นี่คือไฟล์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"
}

คำตอบ:


155

คุณควรติดตั้ง babel-loader และ babel-core เป็น dev-dependency ขณะติดตั้ง npm

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

ทำงานอย่างมีเสน่ห์! rember เพื่อเพิ่มลงในของคุณpackag.jsonเพื่อหลีกเลี่ยงปัญหานี้อีก ทำงานnpm install ด้วยธง-Sและทำงานได้ดี
andilabs

4
ฉันยังคงได้รับ: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
ดูเหมือนว่า loader v8 ต้องการ core v7 แต่ปัจจุบัน core v7 เพิ่งมีการbetaเปิดตัวซึ่งดูเหมือนว่าจะได้รับการดูแลจากผู้ดูแล ฉันระบุด้วยตนเอง7.1.5สำหรับbabel-loader(เวอร์ชันล่าสุดที่วางจำหน่ายในขณะนี้) และฉันกำลังออกไปทำงาน
Brian Underwood

43

สำหรับผู้ที่ต้องการใช้ babel-loader 8+ ต้องใช้ Babel 7.x ซึ่งจะต้องติดตั้งเป็นแพ็คเกจ "@ babel / core" แทน "babel-core" กล่าวอีกนัยหนึ่งคือเรียกใช้:

npm install --save-dev @babel/core

2
ฉันเดาว่าคุณไม่ได้ใช้ babel-loader 8+ ฉันตอบคำถามนี้สำหรับผู้ที่กำลังจะอัปเกรด / เริ่มโครงการใหม่ แต่ไม่ทราบว่าเหตุใดจึงไม่ทำงานเนื่องจากการเปลี่ยนชื่อแพ็คเกจ ไม่จำเป็นต้องลงคะแนนในขณะที่ระบุไว้อย่างชัดเจนว่าใช้กับเวอร์ชันใด
CounterFlame

12

ฉันพบข้อผิดพลาดนี้และแก้ไขได้โดยการติดตั้ง babel-core แต่สิ่งที่น่าสนใจคือฉันพบว่า babel-core มีอยู่ใน peerDependencies ของ babel-loader

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

เหตุใด peerDependecies จึงไม่ติดตั้งโดยอัตโนมัติหลังจากการค้นหาไม่กี่ครั้งฉันพบสิ่งนี้ในบล็อก npm

peerDependencies จะไม่ติดตั้งโดยอัตโนมัติอีกต่อไป


6

เพิ่มคำตอบของ @ Chetan ในหัวข้อนี้:

ฉันวิ่งเข้าไปในปัญหานี้ในวันนี้ขณะที่ต่อไปผ่านหนังสือดร. Axel Rauschmayer ของที่นี่ ต่อเล่มbabel-loaderควรดาวน์โหลดbabel-coreด้วย อย่างไรก็ตามนี่ไม่ใช่กรณีเมื่อฉันลองใช้ ฉันคิดว่าสิ่งนี้เกี่ยวข้องกับคำตอบของ @ theJian

เนื่องจาก package.json เดิมแสดงรายการbabel-loaderเป็น dependency แล้วการรันคำสั่งต่อไปนี้จึงแก้ไขข้อผิดพลาด

npm install babel-core --save-dev

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.