其实一直以来ionic安装,包括后来的ionic2的安装都十分坎坷【大概天生自带安装和配环境出问题体质?
一路上简直就是拆东墙补西墙,跌跌撞撞,出现的问题记都记不完(太不专业了!怎么能不记录!),然后,其中遗留下一个,是一直没有修改的,优先级比较低被我略过的权限问题。
开始时ionic新建项目老失败,后来在stackoverflow上看到的回答,那些命令都一个一个去试,最后用sudo解决了办法,就是管理员权限。看似一劳永逸啊,用了这个方法之后,不管是npm install
还是ionic serve
都需要在前面加sudo,不然就会报错
Error: EACCES: permission denied,open '/Users/escawn/.config/configstore/bower-github.json'
You don't have access to this file.
多么冰冷无情!看到error我心都要碎了。
所以!办法一来了!
办法一
sudo ionic serve
既然你说我没权限,那我就以最高权限运行咯,这样总行了吧。
这个办法确实能解决一时的问题,但是用sudo也带来了很多麻烦。
据亲身检测:
- 在文件夹内修改/新增/删除任何文件,都要输一遍密码(这段时期以来我输密码的速度比平均打字速度快了十倍!)
- 没有权限的情况下,编辑器/IDE无法正常操作写代码(atom在输入密码的情况下可新建/修改/保存文件,但是无法新建文件夹;webstorm无法对文件进行操作。)
- 作为仓库在向github push的时候会出问题,(这也是我下定决心解决权限问题的导火索)简直就是个死循环,因为github的user和文件的user不一致啊。用sudo进行push,github这边查不到你的身份,因为此时你是管理员;但是不用,又根本没办法对文件进行操作!天!
胶着许多,我再回到报错信息,发现
open '/Users/escawn/.config/configstore/bower-github.json'
这个文件有什么问题吗?经过stackflow的寻找,执行命令
ls -l in /Users/escawn/.config/configstore
查看到了权限
total 40
-rw------- 1 root staff 2 8 13 17:35 bower-github.json
-rw------- 1 root staff 47 8 10 10:49 insight-cordova.json
-rw------- 1 escawn staff 55 5 2 14:22 typings.json
-rw------- 1 root staff 55 8 10 10:49 update-notifier-cordova.json
-rw------- 1 escawn staff 55 5 2 14:22 update-notifier-typings.json
这就是根源所在!权限不一致!于是办法二来了
办法二
sudo chown -R escawn .config/
使用chown把所有权限改在用户escawn下,然后再试一次ionic serve
项目就能正常运行啦~
试试git push 也没问题~
总结
对于报错,一定要仔细看信息!看细节!根据细节思考问题所在!【反省完毕
补充(8.14更新):
今天在新建项目的时候依然报错了,然后我依然使用了sudo
新建项目。结果之后按照上述方法,能够使ionic serve
正常运行,更改文件依然是没有权限。
然后我如法炮制,在项目文件里寻找带config
名的配置文件,找到了.editorconfig
,打开一看,里面第二句话是
root = true
诶诶,这有点不对吧?以防万一,我试着查看权限
ls -l in /Users/escawn/Documents/life-helper/.editorconfig
结果显示:
-rw-rw-rw- 1 root staff 242 8 14 20:03 /Users/escawn/Documents/life-helper/.editorconfig
果不其然!然后,更改权限
sudo chown -R escawn /Users/escawn/Documents/
接着再查看
-rw-rw-rw- 1 escawn staff 242 8 14 20:03 /Users/escawn/Documents/life-helper/.editorconfig
这回成功了试着删除文件,更改文件也没问题✌️