找不到模块'@ babel/core'

J. *_*Doe 36 node.js npm reactjs webpack babeljs

我正在关注这个webpack4/react教程:

https://www.youtube.com/watch?v=deyxI-6C2u4

我完全跟着它,直到他运行npm的部分开始.不同的是,他的应用程序运行,我的错误:

找不到模块'@ 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:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\joeyf\Desktop\Code\Github\webpack4-sample\node_modules\babel-loader\lib\index.js:5:15)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
 @ multi (webpack)-dev-server/client?http://localhost:8080 (webpack)/hot/dev-server.js ./src/index.js main[2]
Run Code Online (Sandbox Code Playgroud)

我曾尝试重新安装babel-core,但仍未找到.这是我的package.json:

{
  "name": "webpack4-sample",
  "version": "1.0.0",
  "description": "A sample setup of Webpack4 with React and Babel",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --mode development --open --hot",
    "build": "webpack --mode production"
  },
  "author": "Joey Fenny",
  "license": "ISC",
  "dependencies": {
    "babel": "^6.23.0",
    "babel-cli": "^6.26.0",
    "react": "^16.4.2",
    "react-dom": "^16.4.2"
  },
  "devDependencies": {
    "babel-core": "^7.0.0-rc.4",
    "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"
  }
}
Run Code Online (Sandbox Code Playgroud)

我的webpack.config.js:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './src/index.js',
    output: {
        path: path.join(__dirname, '/dist'),
        filename: 'index_bundle.js'
    },
    module: {
        rules: [{
            test: /\.js$/,
            exclude: path.join(__dirname, '/node_modules'),
            use: {
                loader: 'babel-loader'
            }
        }]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/index.html'
        })
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是一个git repo的链接:

https://gitlab.com/jfny/webpack4-sample

有谁知道发生了什么?谢谢.

Wes*_*gur 97

做npm install @babel/core --save.巴贝尔改变了他们的包裹,所以你的babel-core不一样@babel/core

  • 对于碰巧在这里摔倒的人来说,由于最近从babel 6到7的主要版本更新,babel-loader分别分为7和8版本.如果使用"ncm -u"对babel-loader 8进行意外更新导致此问题,请确保通过"npm install babel-loader @ 7"获得babel-loader 7.安装说明请在此处清楚注明:https://github.com/babel/babel-loader (11认同)

Rob*_*uch 23

最近Babel升级到版本7改变了节点包的命名.

例如,现在您必须安装__CODE__并__CODE__使其与React一起使用.

然后你可以在你的.babelrc文件中使用它们:

npm install --save-dev @babel/core @babel/preset-env
Run Code Online (Sandbox Code Playgroud)

或者,当你的package.json中没有.babelrc时:

npm install --save-dev @babel/preset-react
Run Code Online (Sandbox Code Playgroud)

如果您想了解更多内容,可以查看最近的Webpack + Babel + React设置.


小智 5

对于那些同时使用 @babel/core 和 babel-node 的人:我刚刚安装了 @babel/core,npm i @babel/core --save-dev但是当我尝试使用 babel-node 时,它​​无法识别 @babel/core 包,我卸载了 @babel/core 并使用再次安装它npm i @babel/core --save,它再次工作!


小智 5

我删除了现有的 npm uninstall babel-core babel-preset-env babel-preset-react

并添加了他们的新名字 npm install --save-dev @babel/core @babel/preset-env @babel/preset-react ,这对我来说非常好。