我试图在iOS上运行ionic,但它引发了一个错误。
发生了什么?
ionic run ios
/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:53
throw err;
^
Error: EACCES, permission denied '/Users/jiahongl/.config/configstore/update-notifier-cordova.json'
You don't have access to this file.
at Error (native)
at Object.fs.openSync (fs.js:500:18)
at Object.fs.readFileSync (fs.js:352:15)
at Object.create.all.get (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:34:26)
at Object.Configstore (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/node_modules/configstore/index.js:27:44)
at new UpdateNotifier (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/index.js:34:17)
at module.exports (/usr/local/lib/node_modules/cordova/node_modules/update-notifier/index.js:123:23)
at checkForUpdates (/usr/local/lib/node_modules/cordova/src/cli.js:64:20)
at cli (/usr/local/lib/node_modules/cordova/src/cli.js:114:5)
at Object.<anonymous> (/usr/local/lib/node_modules/cordova/bin/cordova:41:1)
错误消息
我刚刚通过以下命令更改了文件update-notifier-cordova.json
的权限:
sudo chmod -R 777 '/Users/anand.d.gupta/.config/configstore/update-notifier-cordova.json'
这解决了问题。
从这个位置删除文件更新通知程序cordova.json解决了问题,它只是一个配置文件
删除文件不是一个正确的选择,下面的方法对我来说是可行的。这个问题的根本原因是因为Cordova cli权限。
步骤1:卸载cordova并重新安装。
sudo npm remove -g cordova
步骤2:使用以下命令安装
sudo npm install -g --unsafe-perm=true cordova
确保它安装了最新版本,通过键入$ ionic info
,您可以看到Cordova CLI版本
步骤3:保护以下文件夹的权限
sudo chown -R <username> /Users/<username>/.config/configstore/
sudo chown -R <username> /Users/<username>/.cordova/
ionic build ios - Should work like charm
在我的项目中,这个问题已经用以下行解决:
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
更改了对此文件夹的权限
sudo chown -R yourusername /Users/yourusername/.config/configstore/