npm WARN saveError ENOENT警告含义及Mac下Github代码安装问题解决
关于
npm WARN saveError ENOENT: no such file or directory 的解析与Mac环境下的解决步骤 先搞懂这个警告到底是什么意思
这个警告其实是npm在尝试保存依赖信息到package.json文件的时候碰了壁:
ENOENT是Unix/Linux系统的标准错误码,全称是"Error NO ENTity",说白了就是「找不到指定的文件或目录」- 核心原因大概率是这两种情况:要么你当前终端所在的目录里根本没有
package.json文件,要么你指定的路径(比如安装时想关联的项目路径)不存在或者输入错了
举个例子:如果你随便打开一个空文件夹就直接执行npm install xxx --save,npm想把xxx写到package.json里,但找不到这个文件,就会抛出这个警告。
Mac环境下的具体解决步骤
咱们一步步来排查修复:
1. 先确认当前工作目录和package.json是否存在
打开终端,先执行这个命令查看你现在在哪:
pwd
然后看看这个目录里有没有package.json,可以用:
ls -la
- 如果没有
package.json:- 如果你是刚新建的项目,直接快速生成默认配置的
package.json:npm init -y - 如果你是从GitHub克隆的项目,先切换到克隆下来的项目根目录(比如
cd ~/Documents/your-cloned-repo),再检查里面有没有package.json——要是克隆的项目本身就没有,那还是得执行上面的npm init -y来生成。
- 如果你是刚新建的项目,直接快速生成默认配置的
2. 清理npm缓存,解决潜在的缓存异常
有时候缓存混乱也会导致这类奇怪的路径问题,Mac上可以执行:
npm cache clean --force
清理完之后再重新执行你的安装命令试试。
3. 修复npm权限问题(避免用sudo执行npm命令)
很多Mac用户习惯用sudo npm install,但这会导致目录权限混乱,反而容易引发各种路径/文件找不到的问题。建议把npm的全局安装目录改成用户权限范围内的路径:
- 先创建一个全局npm目录:
mkdir ~/.npm-global - 配置npm使用这个目录作为全局安装前缀:
npm config set prefix '~/.npm-global' - 把这个目录加到你的shell配置文件里(如果你用的是zsh,就编辑
~/.zshrc;用bash的话编辑~/.bash_profile):
打开配置文件(比如open ~/.zshrc),添加一行:export PATH=~/.npm-global/bin:$PATH - 让配置生效:
source ~/.zshrc
之后再执行npm命令就不用加sudo了,权限问题也会少很多。
4. 重新执行安装命令
确认好package.json存在、目录正确之后,再重新执行你从GitHub安装代码的命令(比如npm install git+https://github.com/xxx/xxx.git),应该就不会再出现这个警告了。
内容的提问来源于stack exchange,提问作者Wayneenter
相关产品推荐
相关产品推荐

