-
Notifications
You must be signed in to change notification settings - Fork 114
2015 05 17 how to install nodejs correctly
layout: post title: Node.js的正确安装与相关工具(Mac OS X) categories: [前端] tags: [JavaScript, NodeJS] published: True
node version manager: 版本管理工具,可以同时安装不同的 node 版本包括 io.js,并且随意切换相应的版本,甚至于特意使用某一版本的 node 来运行某个 js 文件。
nvm ls/ls-remote #列出已经安装的/远程仓库中的所有版本
nvm install/uninstall [version] #安装/卸载某个版本
nvm current #显示现在使用的版本,与node -v功能一样
nvm use [version] #切换版本
nvm which [version] #显示该版本所安装的位置
nvm alias default [version] #在所有的shell都使用这个默认版本
node package manager: 包管理工具,安装和管理其他依赖库。
npm install -g [package] #全局安装(如mocha)
npm install [package] #安装到当前文件夹(如chai)
npm install #按照package.json安装相关依赖
npm install [package] --save #自动把模块和版本号添加到dependencies部分
npm install [package] --save--dev #自动把模块和版本号添加到devdependencies部分
用于区别开发依赖模块和产品依赖模块,devDepandencies 主要是配置测试框架, 例如 jshint、mocha。
如果从官方网站直接下载安装包安装的话会有一个问题:我安装 io.js 之后,它会在 io.js 和 node 的目录之间直接建立软链接(symlinks),从而导致了 nvm 怎么也不能把 io.js 切换到原来 node.js 版本
$ ll /usr/local/bin/{node,io.js}
16864 -rwxrwxr-x. 1 root root 17268324 Jan 14 08:29 /usr/local/bin/iojs
0 lrwxrwxrwx. 1 root root 4 Jan 14 08:29 /usr/local/bin/node -> iojs
先使用 brew 安装好 nvm(此时你还没有 node 呢,怎么npm install nvm -g
):
brew update #更新软件源(就像sudo apt-get update)
brew install nvm
在安装完毕之后需要根据 terminal 里的提示做一下操作:
mkdir ~/.nvm #建立一个nvm版本库,之后安装的node版本都会在这里
cp $(brew --prefix nvm)/nvm-exec ~/.nvm/ #拷贝brew目录中的nvm-exec执行文件到新建的目录
然后把以下的内容添加到~/.bashrc
和~/.zshrc
中,这样就可以在终端中使用 bash 和 zsh 命令行工具啦,不然会显示command not found
。
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh #实际上的目录是/usr/local/opt/nvm/nvm.sh
nvm install 0.12.3 #首先安装好想要的版本
nvm alias default 0.12.3 #然后设置默认的node版本以便于在所有shell中使用
通过npm config get prefix
命令可以看到安装的路径是/Users/Thoughtworks/.nvm/versions/node/v0.12.3
,所以 nvm 是直接把不同的 node 版本安装在先前所建立的.nvm 文件夹中,易于管理。
npm install -g npm@latest #首先更新一下npm到最新版
最好不要使用 sudo 安装全局库,所以需要更改一下 npm 工具的权限,就不用每次都需要输入密码啦
sudo chown -R $USER ~/.npm
由于墙的问题,有时候 npm install 会在 node-gyp rebuild 那里卡很久,原因在于 node-gyp 编译时候需要 Node.js 源码来提供头文件,所以它会先尝试下载 Node.js,但是由于下载速度奇慢所以就卡住不动了。
为了获得更快的库安装速度,我们可以切换到淘宝的软件源,淘宝说与官方的同步频率为 10 分钟,所以还是相当可靠的。
可以使用我们定制的 cnpm 命令行工具代替默认的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install [package] #使用cnpm来安装对应的库
- Mac 下如何删除 卸载 nodejs
- Introduction to npm - How To Node - NodeJS
- 03 - Fixing npm permissions _ npm Documentation
- How to use npm global without sudo on OSX
- node.js - nvm keeps forgetting node in new terminal session - Stack Overflow
- osx - What is the suggested way to install brew, node.js, io.js, nvm, npm on OS X_ - Stack Overflow
- How to uninstall io.js (or io.js and Node.js together)
- Install Node.js and io.js Together (safely)