react 报错 Module not found:Can't resolve '@babel/runtime/helpers/esm/createSuper'

问题描述

npm start尝试运行项目的时候无法运行页面,报错如下:

Module not found: Can’t resolve ‘@babel/runtime/helpers/esm/createSuper’

一开始我尝试npm i重新安装,第一天是可以正常运行页面的,但是隔天开始就继续报错,且原方法解决不了。

解决方法

参考github上的回答,我们可以重新安装7.9.0版本的@babel/runtime
github上的回答

检查自己的@babel/runtime的版本

检查自己的@babel/runtime的版本,我的版本是7.10.4回退到7.9.0就能解决问题:
检查自己的@babel/runtime的版本

安装7.9.0版本@babel/runtime

npm install @babel/runtime@7.9.0

成功运行页面

再次npm start,成功运行页面

补充:package.json和package-lock.json

  1. package.json 文件里记录有项目所安装的依赖项,当node_modules 被删除时,可以再根据该文件安装所需的依赖项;
  2. npm 5 以前不会有 package-lock.json 这个文件,npm5 之后才加入这个文件;
  3. 当安装包的时候,npm 都会生成或者更新package-lock.json 这个文件;
  4. npm 5 之后的版本安装包的时候不需要加 --save 参数,它会自动保存依赖的信息;
  5. 当安装包的时候,会自动创建或者更新package-lock.json 文件;
  6. package-lock.json 文件会保存 node_modules 中所有包的信息(版本、下载地址),重新 npm install 的时候速度会提升;
  7. 文件的名称有 lock ,表示该文件可以用来锁定版本号,防止自动升级新版。
,