想裝個開發react的環境,本機上以前已經安裝了node,直接npm發現各類問題,什麼權限啦,更新啦,真是太抓瞎了。。前端
緣由在於,我以前是直接從node官網下載的。node
在官網下載的 node 安裝包,運行後會自動安裝在全局目錄,使用過程當中常常會遇到一些權限問題。react
Node.js安裝過程將npm安裝在僅具備本地權限的目錄中。 當您嘗試全局運行包時,這可能會致使權限錯誤。(npm官網翻譯)git
怎麼解決這個問題呢?github
如下來自npm官網:算法
爲了解決這兩個問題,許多開發人員選擇使用節點版本管理器(nvm)來安裝npm。 版本管理器將避免權限錯誤,而且將解決更新Node.js和npm的複雜性。npm
另外,開發人員可使用nvm在npm的多個版本上測試他們的應用程序。 nvm使您能夠輕鬆切換npm以及節點版本。segmentfault
由上可知,咱們須要安裝nvm,在安裝以前,咱們最好把以前已經安裝的node.js清除掉。bash
首先,打開你 Finder,按
shift+command+G
,打開前往文件夾的窗口,分別輸入下列目錄進去以後刪除node
和node_modules
相關的文件和文件夾:app
打開
/usr/local/lib
,刪除node
和node_modules
相關的文件和文件夾;打開
/usr/local/include
,刪除node
和node_modules
相關的文件和文件夾;若是你是使用的
brew install node
安裝的 NodeJS,那麼你還須要在終端中執行brew uninstall node
命令來卸載;檢查你的我的主文件夾下面的全部的
local
、lib
以及include
文件夾,而且刪除全部與node
和node_modules
相關的文件以及文件夾;打開
/usr/local/bin
並刪除node
可執行文件。
此外,在終端進行一些額外操做:
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
sudo rm -rf ~/.node-gyp
sudo rm /opt/local/bin/node
sudo rm /opt/local/include/node
sudo rm -rf /opt/local/lib/node_modules複製代碼
接下里就能夠安裝nvm啦~
參考nvm的官網安裝教程,個人安裝步驟是:
1. 打開終端
2. 使用cURL:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.9/install.sh | bash複製代碼
3.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm複製代碼
4.
command -v nvm複製代碼
這個時候terminal應該會輸入nvm表示已經安裝成功啦。
若是沒有輸入上面這行命令之後,沒有反應,或者輸出nvm: command not found。
官方給出的解決方法是:
your system may not have a [
.bash_profile file
] where the command is set up. Simply create one withtouch ~/.bash_profile
and run the install script againyou might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry.
我就是出現了第一條的問題,輸入touch touch ~/.bash_profile,再從新執行一遍安裝流程就好啦~
5. 安裝node的淘寶鏡像,加快下載速度
export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node複製代碼
6. node的安裝
nvm install node複製代碼
會直接安裝最新版本的node,更多nvm的操做能夠看官網文檔~
7. 安裝npm的淘寶鏡像
npm config set registry https://registry.npm.taobao.org複製代碼
愉快的敲出react官網給出的安裝命令!
npm install -g create-react-app
create-react-app my-app
cd my-app
npm start複製代碼
成功get!
使用 nvm 管理不一樣版本的 node 與 npm:bubkoo.com/2017/01/08/…/
nvm github:github.com/creationix/…
歡迎你們關注公糉號:CSandCatti
平常推送英語精讀,算法題,前端知識~