React build error:模块构建失败(来自./node_modules/babel-loader/lib/index.js):

问题描述 投票:0回答:3

我跟着一个教程,当我尝试构建反应时,我得到一个错误。

Module build failed (from ./node_modules/babel-loader/lib/index.js)
  5 | ReactDOM.render(
> 6 |     <App />,
    |     ^
  7 |     document.getElementById('root')
  8 | );

我发现了类似的问题,我试图在此基础上解决问题,但无济于事。这是我的webpack.config.js:

module.exports = {
    entry: './index.js',
    output:{
        path: __dirname,
        filename: 'bundle.js'
    },
    module:{
        rules:[
            {
                test: /\.jsx?$/,
                loader: 'babel-loader',
                exclude: '/node_modules/'
            }
        ]
    }
}

下面我有package.json,"devDependencies"是我在以前的解决方案中找到的。

{
  "name": "rtsupport",
  "version": "1.0.0",
  "description": "Realtime support frontend",
  "main": "./index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "develop": "webpack --mode development --watch",
    "build": "webpack --mode development"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "node": "^10.15.2",
    "react-dom": "^16.8.4"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0-bridge.0",
    "babel": "^5.8.23",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "react": "^16.8.4",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.2.3"
  }
}

这些是我最初的"devDependencies"

 "devDependencies": {
    "@babel/core": "^7.3.4",
    "babel": "^5.8.23",
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.5"
  }

我的节点版本是:v11.10.1

在尝试以下建议后:

rules:[
            {
                test: /\.(js|jsx)$/,
                exclude: '/node_modules/',
                use: [
                    { loader: 'babel-loader' }
                  ]
            }
        ]

我仍然得到同样的错误。

javascript node.js reactjs babel babel-loader
3个回答
0
投票

好吧我认为你的webpack测试需要包含.js文件,如果你打算在其中使用JSX:

test: /\.(js|jsx)$/

0
投票

经过一整天的黑客攻击和网站浏览后,我找到了解决方案。

module:{
        rules:[
            {
                test: /\.jsx?$/,
                exclude: '/node_modules/',
                loader: 'babel-loader',
                query:
                {
                    presets:['react']
                }  
            }
        ]
    }

而package.json部分:

  "devDependencies": {
    "@babel/core": "^7.3.4",
    "babel": "^5.8.23",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-react": "^6.24.1",
    "babel-preset-react-app": "^7.0.2",
    "react": "^16.8.4",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.2.3"
  }

0
投票

使用该配置你只告诉“翻译”.jsx文件,因为你的主文件是index.js,他没有加载它,尝试添加这个配置:

有了这个你添加js和jsx文件,由你的加载器解决

rules: [
  {
    exclude: /node_modules/,
    test: /\.js|.jsx?$/,
    use: [
      { loader: 'babel-loader' }
    ]
  }
]

我的错,我以为你有一个babelrc,我忘了你可以创建一个文件在同一个文件夹级别上你的wepback.config与“.babelrc”名称,在这里你可以指定你的加载配置,并告诉babel加载“react”插件

{
"presets": [
  "stage-0",
  "react",
  "es2015"
],
 "plugins": [
  "transform-class-properties",
  "transform-decorators-legacy",
  "transform-object-rest-spread",
  "transform-es2015-destructuring"
 ],
 "env": {
   "debug": true
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.