Node.js上传应用时报npm ENOENT错误 找不到package.json文件
上传Node.js应用时npm执行ENOENT报错解决方案
报错信息复现
执行npm命令时输出如下内容:
npm WARN config global `--global`, `--local` 已弃用,请改用 `--location=global`。 npm ERR! code ENOENT npm ERR! syscall open npm ERR! path C:\PRJ\FINI\front-end/package.json npm ERR! errno -4058 npm ERR! enoent ENOENT: 不存在对应文件或目录,无法打开 'C:\PRJ\FINI\front-end\package.json' npm ERR! enoent 该错误由npm无法找到指定文件引发。 npm ERR! enoent npm ERR! 本次运行的完整日志存储路径为: npm ERR! C:\Users\meu.nome\AppData\Local\npm-cache_logs\2022-06-18T10_50_32_530Z-debug-0.log
错误根因
- 开头的弃用警告不影响命令运行,是npm v8+版本的参数调整提示,不是报错诱因
- 核心触发原因是npm执行命令时的工作目录为
C:\PRJ\FINI\front-end\,但该路径下不存在Node.js项目必需的package.json配置文件,通常由三种情况导致:- 执行npm命令前没有切换到项目根目录,当前终端所在路径错误
- 项目文件上传/拉取不完整,
package.json文件丢失 - 项目实际存放路径和当前执行路径不匹配,比如前端代码存放在
front-end的子目录下,而非front-end根目录
修复步骤
- 先定位
package.json的实际位置:打开项目存放目录,逐层查找包含package.json文件的文件夹,这就是项目的真实根目录 - 在终端执行
cd 你的项目真实根目录路径切换工作路径,切换后Windows系统执行dir package.json、Mac/Linux系统执行ls package.json确认文件存在,再重新执行原本的npm命令即可 - 如果全目录都找不到
package.json,说明项目文件缺失:- 已有项目的话重新上传/拉取完整源码
- 全新初始化项目的话,在目标目录执行
npm init,按照提示补全项目信息,自动生成package.json后再执行后续操作
如果需要排查更细节的执行问题,可以直接打开报错给出的日志路径,查看完整的npm执行链路记录。如果要消除开头的弃用警告,执行全局npm操作时把
--global/-g参数替换成--location=global即可,不处理也不会影响功能正常运行。
内容的提问来源于stack exchange,提问作者Taian Mendes Machado
相关产品推荐
相关产品推荐

