【问题标题】:React build issue, ERROR in ./src/index.js Module build failed (from ./node_modules/babel-loader/lib/index.js):React 构建问题,./src/index.js 中的错误模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):
【发布时间】:2018-08-28 14:04:50
【问题描述】:

我正在尝试使用 Webpack 4 从头开始​​构建反应应用程序

我在尝试构建时遇到以下错误。虽然已经安装了 babel-core,但我也尝试安装 @babel/core 但它不起作用

ERROR in ./src/index.js
Module build failed (from ./node_modules/babel-loader/lib/index.js):
Error: Cannot find module '@babel/core'
    at Function.Module._resolveFilename (module.js:538:15)
    at Function.Module._load (module.js:468:25)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/Users/digvijay.upadhyay/digvijayu/react_webpack_4_from_scratch/node_modules/babel-loader/lib/index.js:5:15)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
 @ multi (webpack)-dev-server/client?http://localhost:8080 ./src main[1]
Child html-webpack-plugin for "index.html":
     1 asset
    Entrypoint undefined = ./index.html
    [./node_modules/html-webpack-plugin/lib/loader.js!./src/index.html] 500 bytes {0} [built]
    [./node_modules/lodash/lodash.js] 527 KiB {0} [built]
    [./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 489 bytes {0} [built]
    [./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]
ℹ 「wdm」: Failed to compile.

webpack.config.js

const HtmlWebPackPlugin = require("html-webpack-plugin");

const htmlPlugin = new HtmlWebPackPlugin({
  template: "./src/index.html",
  filename: "./index.html"
});

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  },
  plugins: [htmlPlugin]
};

编辑:将包 json 文件添加到问题中 package.json

  "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^8.0.0",
        "babel-preset-env": "^1.7.0",
        "babel-preset-react": "^6.24.1",
        "html-webpack-plugin": "^3.2.0",
        "webpack": "^4.17.1",
        "webpack-cli": "^3.1.0",
        "webpack-dev-server": "^3.1.6"
      },
      "dependencies": {
        "@babel/core": "^7.0.0",
        "path": "^0.12.7",
        "react": "^16.4.2",
        "react-dom": "^16.4.2"
      }

{
  "name": "boiler-plate-react-webpack-4",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --mode development --open --display-error-details",
    "build-dev": "webpack --mode development",
    "build-prod": "webpack --mode production",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.0",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "html-webpack-plugin": "^3.2.0",
    "webpack": "^4.17.1",
    "webpack-cli": "^3.1.0",
    "webpack-dev-server": "^3.1.6"
  },
  "dependencies": {
    "@babel/core": "^7.0.0",
    "path": "^0.12.7",
    "react": "^16.4.2",
    "react-dom": "^16.4.2"
  }
}

【问题讨论】:

    标签: reactjs webpack


    【解决方案1】:

    已解决:

    问题出在包babel-loader,最新版本需要@babel/core。将版本降级到7.x,现在可以了

    "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^7.1.5",
        "babel-preset-env": "^1.7.0",
        "babel-preset-react": "^6.24.1",
        "html-webpack-plugin": "^3.2.0",
        "webpack": "^4.17.1",
        "webpack-cli": "^3.1.0",
        "webpack-dev-server": "^3.1.6"
      },
      "dependencies": {
        "react": "^16.4.2",
        "react-dom": "^16.4.2"
      }
    

    【讨论】:

      【解决方案2】:

      是的,babel-loader 8 需要 babel 7,令人困惑。但是,如果您想使用新的 babel,这非常简单。你会做这样的事情:

      "devDependencies": {
          "babel-loader": "^8.0.0",
          "@babel/core": "^7.0.0",
          "@babel/preset-env": "^7.0.0",
          "@babel/preset-react": "^7.0.0",,
          "html-webpack-plugin": "^3.2.0",
          "webpack": "^4.17.1",
          "webpack-cli": "^3.1.0",
          "webpack-dev-server": "^3.1.6"
        },
        "dependencies": {
          "react": "^16.4.2",
          "react-dom": "^16.4.2"
        }
      

      加上对你的 babel 预设的小改动,无论你在哪里定义它们:

        "babel": {
          "presets": [
            "@babel/env",
            "@babel/react"
          ]
        }
      

      你可以在这里看到我更新到 babel 7 的项目的差异:https://github.com/ccnmtl/astro-interactives/commit/97b31ca7948d177d7f41439bdbeb0a54cd3e69da

      【讨论】:

        【解决方案3】:

        尝试安装最新的加载器。

           npm install -D babel-loader @babel/core @babel/preset-env OR
           npm install -D babel-loader@latest @babel/core@latest @babel/preset-env@latest
        

        【讨论】:

          【解决方案4】:

          解决此问题的另一种方法是保留@babel/core 并安装babel-core : ^7.0.0-bridge.0。它是一个桥接包,允许您支持以前的 babel 包并将 babel 核心更新到最新版本。然后你也可以将你的 babel-loader 更新为 LTS。

          【讨论】:

            【解决方案5】:

            使用 babel 依赖版本

            &gt;=7.8.7

            "devDependencies": {
                "@babel/cli": "^7.13.10",
                "@babel/core": "^7.13.10",
                "@babel/preset-env": "^7.13.10",
                "@babel/preset-react": "^7.12.13",
            }

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2019-08-01
              • 2021-04-17
              • 2021-11-26
              • 2023-03-28
              • 1970-01-01
              • 1970-01-01
              • 2019-03-03
              • 1970-01-01
              相关资源
              最近更新 更多