Mac下安装cordova-hot-code-push-cli失败

在Mac环境下安装cordova-hot-code-push-cli时遇到权限错误导致ngrok安装失败。通过设置npm配置为unsafe-perm=true,或者使用sudo命令配合--unsafe-perm及--allow-root参数,可以成功解决此问题。

Mac下安装cordova-hot-code-push-cli失败,执行命令为:sudo npm i -g cordova-hot-code-push-cli

具体错误日志如下:

npm WARN deprecated crypto@0.0.3: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated queue-async@1.0.7: renamed to d3-queue
/Users/xxx/.npm-global/bin/cordova-hcp -> /Users/shanon/.npm-global/lib/node_modules/cordova-hot-code-push-cli/bin/cordova-hcp

> ngrok@2.3.0 postinstall /Users/xxx/.npm-global/lib/node_modules/cordova-hot-code-push-cli/node_modules/ngrok
> node ./postinstall.js

ngrok - unpacking binary
ngrok - error unpacking binary { Error: EACCES: permission denied, open '/Users/xxx/.npm-global/lib/node_modules/cordova-hot-code-push-cli/node_modules/ngrok/bin/ngrok'
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: '/Users/shanon/.npm-global/lib/node_modules/cordova-hot-code-push-cli/node_modules/ngrok/bin/ngrok' }
ngrok - install failed, retrying
ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-amd64.zip
ngrok - error storing binary to local file { Error: EACCES: permission denied, open '/Users/xxx/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip'
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: '/Users/xxx/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip' }
ngrok - install failed, retrying
ngrok - downloading binary https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-amd64.zip
ngrok - error storing binary to local file { Error: EACCES: permission denied, open '/Users/xxx/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip'
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: '/Users/shanon/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip' }
ngrok - install failed { Error: EACCES: permission denied, open '/Users/xxx/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip'
  errno: -13,
  code: 'EACCES',
  syscall: 'open',
  path: '/Users/xxx/.ngrok/aHR0cHM6Ly9iaW4uZXF1aW5veC5pby9jLzRWbUR6QTdpYUhiL25ncm9rLXN0YWJsZS1kYXJ3aW4tYW1kNjQuemlw.zip' }
npm WARN s3-sync-aws@1.1.1 requires a peer of level@~1.4.0 but none is installed. You must install peer dependencies yourself.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ngrok@2.3.0 postinstall: `node ./postinstall.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ngrok@2.3.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/shanon/.npm/_logs/2019-01-08T04_03_05_057Z-debug.log

错误提示显示permission问题,然后安装ngrok失败,尝试各种方式,其实还是权限不够的问题,显示简介给了权限也没用。

最后翻阅各种帖子,我的解决方式如下:

npm config set unsafe-perm=true

执行该语句后,再执行上面的安装命令,居然成功了。

另外有些情况用如下方式也能解决,此处记录一下;

sudo npm i -g ngrok --unsafe-perm=true --allow-root

 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值