创建React项目时出现ReferenceError: primordials is not defined错误
问题:
npx create-react-app lms-2.0创建React项目失败,报错ReferenceError: primordials is not defined 执行创建命令后,项目安装流程终止并删除生成文件,完整错误日志如下:
C:\xampp\htdocs\LMS_2.0>npx create-react-app lms-2.0 Creating a new React app in C:\xampp\htdocs\LMS_2.0\lms-2.0. evalmachine.<anonymous>:42 } = primordials; ^ ReferenceError: primordials is not defined at evalmachine.<anonymous>:42:5 at Object.<anonymous> (C:\Users\Asus\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\fs.js:11:1) at Module._compile (node:internal/modules/cjs/loader:1159:14) at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) at Module.load (node:internal/modules/cjs/loader:1037:32) at Module._load (node:internal/modules/cjs/loader:878:12) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object.<anonymous> (C:\Users\Asus\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:3:27) at Module._compile (node:internal/modules/cjs/loader:1159:14) Node.js v18.12.0 Installing packages. This might take a couple of minutes. Installing react, react-dom, and react-scripts... evalmachine.<anonymous>:42 } = primordials; ^ ReferenceError: primordials is not defined at evalmachine.<anonymous>:42:5 at Object.<anonymous> (C:\Users\Asus\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\fs.js:11:1) at Module._compile (node:internal/modules/cjs/loader:1159:14) at Module._extensions..js (node:internal/modules/cjs/loader:1213:10) at Module.load (node:internal/modules/cjs/loader:1037:32) at Module._load (node:internal/modules/cjs/loader:878:12) at Module.require (node:internal/modules/cjs/loader:1061:19) at require (node:internal/modules/cjs/helpers:103:18) at Object.<anonymous> (C:\Users\Asus\AppData\Roaming\npm\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:3:27) at Module._compile (node:internal/modules/cjs/loader:1159:14) Node.js v18.12.0 Aborting installation. npm install --no-audit --save --save-exact --loglevel error react react-dom react-scripts@0.9.x has failed. Deleting generated file... package.json Deleting lms-2.0/ from C:\xampp\htdocs\LMS_2.0 Done.
原因
该错误由Node.js版本(v18.12.0)与旧版graceful-fs依赖不兼容导致,旧版graceful-fs使用了Node.js高版本中已移除的primordials对象。
解决方案
方案1:使用最新版create-react-app创建项目
执行以下命令,新版create-react-app已适配高版本Node.js,不会依赖有问题的旧版graceful-fs:
npx create-react-app@latest lms-2.0
方案2:切换兼容的Node.js版本
通过Node版本管理器(如nvm)切换到Node.js 14.x或16.x版本,这些版本与旧版graceful-fs兼容,之后再执行原创建命令即可。
方案3:手动初始化项目并安装依赖
- 创建项目目录并进入:
mkdir lms-2.0 && cd lms-2.0 - 初始化package.json:
npm init -y - 安装最新版核心依赖:
npm install react react-dom react-scripts@latest - 在
package.json中添加启动脚本:"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" } - 启动项目:
npm start
内容的提问来源于stack exchange,提问作者Vidu Gajadeera
相关产品推荐
相关产品推荐

