bingoogolapple.github.io
bingoogolapple.github.io copied to clipboard
NodeJS学习笔记
版本管理 nvm
如果之前是在官网下载的 node 安装包,运行后会自动安装在全局目录,其中 node 命令在 /usr/local/bin/node ,npm 命令在全局 node_modules 目录中,具体路径为 /usr/local/lib/node_modules/npm 安装 nvm 之后最好先删除下已安装的 node 和全局 node 模块
npm ls -g --depth=0 #查看已经安装在全局的模块,以便删除这些全局模块后再按照不同的 node 版本重新进行全局安装
sudo rm -rf /usr/local/lib/node_modules #删除全局 node_modules 目录
sudo rm /usr/local/bin/node #删除 node
cd /usr/local/bin && ls -l | grep "../lib/node_modules/" | awk '{print $9}'| xargs rm #删除全局 node 模块注册的软链
安装 nvm,如果是 zsh,安装完后需要执行 source ~/.nvm/nvm.sh
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
安装 最新稳定版和 4.2.2 版
nvm install node #安装最新稳定版,比如这时是 v7.4.0
nvm install 4.2.2 #安装 4.2.2 版本
切换 node 版本
➜ Docker nvm use 7 # 切换到 7.4.0 版本
Now using node v7.4.0 (npm v4.0.5)
➜ Docker node --version
v7.4.0
➜ Docker npm --version
4.0.5
➜ Docker nvm use 4 # 切换到 4.2.2 版本
Now using node v4.2.2 (npm v2.14.7)
➜ Docker node --version
v4.2.2
➜ Docker npm --version
2.14.7
➜ Docker nvm use node # 切换到默认 node 版本,此时默认的 node 版本就是 7.4.0
Now using node v7.4.0 (npm v4.0.5)
➜ Docker node --version
v7.4.0
➜ Docker npm --version
4.0.5
设置默认版本
nvm alias default 4.2.2 # 设置默认 node 版本为 4.2.2
如果你的默认 node 版本(通过 nvm alias 命令设置的)与项目所需的版本不同,则可在项目根目录或其任意父级目录中创建 .nvmrc 文件,在文件中指定使用的 node 版本号
cd <项目根目录> #进入项目根目录
echo 4 > .nvmrc #添加 .nvmrc 文件
nvm use #无需指定版本号,会自动使用 .nvmrc 文件中配置的版本
node -v #查看 node 是否切换为对应版本
查看不同版本安装的模块存放路径。安装完成的路径是 /Users/计算机用户名/.nvm/versions/node/版本号/lib/模块名称
➜ Docker nvm which 4.2.2
/Users/bingoogol/.nvm/versions/node/v4.2.2/bin/node
➜ Docker nvm which node
/Users/bingoogol/.nvm/versions/node/v7.4.0/bin/node
配置镜像仓库
npm config set registry https://registry.npm.taobao.org
或者
npm install -g cnpm --registry=https://registry.npm.taobao.org
或者
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
➜ Docker npm install -g nrm
➜ Docker nrm -h
Usage: nrm [options] [command]
Commands:
ls List all the registries
current Show current registry name
use <registry> Change registry to registry
add <registry> <url> [home] Add one custom registry
del <registry> Delete one custom registry
home <registry> [browser] Open the homepage of registry with optional browser
test [registry] Show response time for specific or all registries
help Print this help
Options:
-h, --help output usage information
-V, --version output the version number
➜ Docker nrm current
npm
➜ Docker nrm ls
* npm ---- https://registry.npmjs.org/
cnpm --- http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
nj ----- https://registry.nodejitsu.com/
rednpm - http://registry.mirror.cqupt.edu.cn/
npmMirror https://skimdb.npmjs.com/registry/
edunpm - http://registry.enpmjs.org/
➜ Docker nrm use taobao
Registry has been set to: https://registry.npm.taobao.org/
➜ Docker nrm test taobao
* taobao - 262ms
➜ Docker nrm test cnpm
cnpm --- 3504ms
➜ Docker nrm test npm
npm ---- 1511ms
npm install 包名
// 添加到package.json的dependencies中
npm install 包名 --save
// 添加到package.json的devDependencies中
npm install 包名 --save-dev
npm install -g 包名
npm info 包名
npm install 包名@版本号
npm ls
npm uninstall 包名
npm uninstall 包名 --save
// 检查更新 package.json里的dependencies前的^表示可以更新版本号的第二位,~表示可以更新版本号的第三位,*表示可以更新所有版本号
npm outdated
npm update
热部署 supervisor
npm install -g supervisor
supervisor app.js
调试
npm install -g iron-node
iron-node app.js
npm install -g node-inspector
node-debug app.js
npm、yarn 查看源和换源
npm config get registry // 查看 npm 当前镜像源
npm config set registry https://registry.npm.taobao.org/ // 设置 npm 镜像源为淘宝镜像
yarn config get registry // 查看 yarn 当前镜像源
yarn config set registry https://registry.npm.taobao.org/ // 设置 yarn 镜像源为淘宝镜像
- 镜像地址
npm - https://registry.npmjs.org/
cnpm - http://r.cnpmjs.org/
taobao - https://registry.npm.taobao.org/
npm install -g nrm
nrm ls
nrm use taobao
npm install -g yarn
npm install -g yrm
yrm ls
yrm use taobao