macOS 11.6安装Truffle报EACCES权限错误,尝试多方案仍无法运行求解决
EACCES: permission denied, open '/Users/stefma/.config/truffle/config.json' 报错核心为Truffle运行时无权限读写用户目录下的配置路径,此前的操作多集中在安装环节,忽略了遗留配置目录权限、nvm环境下sudo安装全局包的权限冲突问题,可按以下步骤修复:
- 第一步:清理旧安装与残留配置
先卸载全局安装的Truffle、清理npm缓存,再删除残留的Truffle配置目录(该目录会在Truffle首次运行时自动重建,不会影响功能):sudo npm uninstall -g truffle npm cache clean --force sudo rm -rf ~/.config/truffle - 第二步:正确执行全局安装
若你已通过nvm管理Node.js版本,全局安装包无需加sudo,sudo会触发root权限将包安装到系统路径,和nvm的用户目录路径产生权限冲突,直接执行无sudo的安装命令即可:npm install -g truffle - 第三步:修正npm全局安装路径(可选,若第二步仍报错可执行)
先查看当前npm全局前缀:npm config get prefix
若返回/usr/local这类系统级路径,执行以下命令将全局安装路径修改为当前用户目录下的路径,规避系统权限校验:
配置完成后重新执行npm config set prefix ~/.npm-global echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrcnpm install -g truffle即可。 - 备选方案:无需全局安装,直接通过npx调用
不需要全局安装Truffle,在需要使用Truffle的项目目录下,所有命令前加npx前缀即可直接调用,完全规避全局权限问题,示例如下:npx truffle init、npx truffle migrate
内容的提问来源于stack exchange,提问作者sam332
相关产品推荐
相关产品推荐

