运行npx create-react-app报package.json main入口无效如何解决
问题描述
执行npx create-react-app命令时触发报错,此后所有npm相关操作均无法正常使用,多次卸载并重新安装Node.js后,相同错误仍反复出现。
报错信息
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. npm WARN logfile could not be created: Error: EPERM: operation not permitted, open 'C:\Users\DevSayae\AppData\Roaming\npm-cache\_logs\2022-07-07T07_54_40_928Z-debug-0.log' node:internal/modules/cjs/loader:353 const err = new Error( ^ Error: Cannot find module 'C:\Users\HP PC\AppData\Roaming\npm\node_modules\npm\node_modules\promise-inflight\inflight.js'. Please verify that the package.json has a valid "main" entry at tryPackage (node:internal/modules/cjs/loader:353:19) at Function.Module._findPath (node:internal/modules/cjs/loader:566:18) at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27) at Function.Module._load (node:internal/modules/cjs/loader:778:27) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (C:\Users\HP PC\AppData\Roaming\npm\node_modules\npm\node_modules\cacache\lib\util\fix-owner.js:7:18) at Module._compile (node:internal/modules/cjs/loader:1105:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) { code: 'MODULE_NOT_FOUND', path: 'C:\\Users\\HP PC\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\promise-inflight\\package.json', requestPath: 'promise-inflight' }
报错日志截图参考:npm运行错误日志
故障原因
- Node.js默认卸载流程不会清理用户目录下的全局npm配置、缓存文件,之前损坏的npm依赖、错误的路径配置被残留,重装后依然会被读取,导致错误反复出现。
- 报错里同时出现两个不同的用户目录路径,就是残留配置指向了错误路径,加上
promise-inflight依赖文件损坏、npm缓存目录权限不足/被占用,共同触发了报错。 - 开头的
--global弃用警告是npm 8.x版本的已知提示,不是核心故障。
解决步骤
- 关闭所有打开的终端、代码编辑器,打开任务管理器结束所有node、npm相关的后台进程,避免文件被占用无法删除。
- 打开资源管理器,进入
C:\Users\你当前的系统用户名\AppData\Roaming\目录,手动删除里面的npm、npm-cache两个文件夹;如果之前自定义过npm全局安装路径,也把对应路径下的npm残留文件全部删除。 - 正常卸载当前安装的Node.js,重启电脑后重新安装Node.js,安装路径不要带中文、空格、特殊字符。
- 安装完成后,以管理员身份新开终端,执行
npm -v验证是否正常输出版本号,无报错就说明修复完成。 - 如果还存在
--global弃用警告,执行命令npm install npm@latest -g --location=global升级到最新版npm即可消除提示。
内容的提问来源于stack exchange,提问作者Simon Itodo
相关产品推荐
相关产品推荐

