You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移Shopify应用至CLI 3.0执行npm install报ngrok EACCES错误

Shopify CLI 3.0迁移时@shopify/ngrok安装EACCES权限报错解决

问题背景

参照官方迁移指南将测试Shopify应用迁移至Shopify CLI 3.0,当前运行环境:

  • 操作系统:macOS Catalina 10.15.17
  • Node版本:16.15.1
  • Ruby版本:2.6.3p62
  • Shopify CLI版本:2.19.0

按照指南要求将所有代码迁移至/web目录,依次创建web/shopify.web.toml、shopify.app.toml、package.json配置文件后,执行sudo npm install命令安装依赖,安装过程中报错,核心错误为@shopify/ngrok模块下载二进制文件时触发EACCES权限拒绝,当前用户无~/.ngrok目录写入权限,多次重试均失败。
核心报错片段:

npm ERR! code 1
npm ERR! path /Users/davide/shopify-v1/node_modules/@shopify/ngrok
npm ERR! command failed
npm ERR! command sh -c node ./postinstall.js
npm ERR! ngrok - downloading binary ngrok-v3-stable-darwin-amd64.zip
npm ERR! ngrok - error storing binary to local file [Error: EACCES: permission denied, open '/Users/davide/.ngrok/xxx.zip'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'open',
npm ERR!   path: '/Users/davide/.ngrok/xxx.zip'
npm ERR! }

故障原因

使用sudo执行npm安装时,依赖的postinstall脚本会以root身份运行,首次创建~/.ngrok目录时会将目录所有者设置为root,后续普通用户身份的进程无法向该目录写入文件,触发权限拒绝。

解决步骤

  1. 修复~/.ngrok目录权限,将目录所有者改回当前登录用户:
    # 如果~/.ngrok目录不存在先手动创建
    mkdir -p ~/.ngrok
    sudo chown -R $(whoami) ~/.ngrok
    
  2. 清理之前安装失败产生的残留文件,避免缓存或半安装依赖导致异常:
    rm -rf node_modules package-lock.json
    
  3. 切换到当前用户身份重新执行依赖安装,禁止使用sudo执行npm项目内依赖安装:
    npm install
    

补充:如果后续安装npm全局包也频繁遇到权限问题,优先调整npm全局安装目录的权限归属到当前用户,不要通过sudo执行npm命令规避权限问题,否则会反复出现同类目录权限异常。

内容的提问来源于stack exchange,提问作者Davide Iandoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:45:32