其實一直以來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
這回成功了試著刪除文件,更改文件也沒問題??