想装个开发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
平常推送英语精读,算法题,前端知识~