Node.js 简单介绍 - myfe/training-camp GitHub Wiki
本文目的是让没有接触过 node 的同学对 node 以及 node 相关工具有初步了解,让接触过 node 的同学可以加深理解。 主要包含以下几点:
- Node.js 是什么
- 如何安装 Node.js
- 如何管理 Node 版本
- NPM 包管理工具
- Yarn 包管理工具
- 包放在devDependencies还是dependencies
- Node.js 是一个开源与跨平台的 Javascript 运行时环境。
- Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。
- Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。
注:使用 Mac 的同学建议通过软件包管理器安装,使用 Windows 的同学建议通过安装包安装。
Node.js 可以通过多种方式进行安装,如下:
- 通过软件包管理器(便捷)。每种操作系统都有其自身的软件包管理器。
在 macOS 上,Homebrew 是业界的标准,在安装之后可以非常轻松地安装 Node.js(通过在 CLI 中运行以下命令):
brew install node
注:其他适用于 Linux 和 Windows 的软件包管理器
- 通过安装包。下载安装包进行安装。
官方软件包下载地址。
安装详情请参考安装指南。
Node.js版本更新速度比较快,有时候对 node 版本有要求,有时候需要切换到指定的 node 版本来重现问题等。遇到这种需求的时候,我们需要能够灵活的切换 node 版本。
nvm 就是为解决这个问题而产生的,它可以方便的在同一台设备上进行多个 node 版本之间切换。
注:nvm 是 Mac 下的 Node 管理工具,有点类似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node, 官方推荐使用 nvmw 或 nvm-windows。
- 卸载已安装到全局的 node/npm
如果之前是在官网下载的 node 安装包, 运行后会自动安装在全局目录,其中 node 命令在 /usr/local/bin/node, npm 命令在 /usr/local/lib/node_modules/npm(全局 node_modules 目录中)
安装 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
参考官方文档,在终端执行:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
注:安装完成后请重新打开终端环境,Mac 下推荐使用 oh-my-zsh 代替默认的 bash shell。
nvm install stable #安装最新稳定版 node
nvm install 8.11.2 #安装 8.11.2 版本,可模糊安装,如:安装v8.11.2,既可nvm install v8.11.2,又可nvm install 8.11
nvm uninstall #删除已安装的指定版本,语法与install类似
nvm use #切换使用指定的版本node
nvm ls #列出所有安装的版本
nvm ls-remote #列出所有远程服务器的版本(官方node version list)
nvm current #显示当前的版本
nvm alias #给不同的版本号添加别名
nvm alias default v8.11.2 #设置node默认版本,重新打开终端才会生效
nvm unalias #删除已定义的别名
nvm reinstall-packages #在当前版本node环境下,重新全局安装指定版本号的npm包
如果你的默认 node 版本(通过 nvm alias 命令设置的)与项目所需的版本不同,则可在项目根目录或其任意父级目录中创建 .nvmrc 文件,在文件中指定使用的 node 版本号,例如:
cd <项目根目录> #进入项目根目录
echo 4 > .nvmrc #添加 .nvmrc 文件
nvm use #无需指定版本号,会自动使用 .nvmrc 文件中配置的版本
node -v #查看 node 是否切换为对应版本
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。
详情请查看NPM 使用介绍
Yarn 是 Facsbook 公司开发的用于替换 npm 的包管理工具。
详情请查看Yarn 使用介绍