Skip to content

Node.js 简单介绍

ruifengwei edited this page Jun 11, 2020 · 1 revision

前言

本文目的是让没有接触过 node 的同学对 node 以及 node 相关工具有初步了解,让接触过 node 的同学可以加深理解。 主要包含以下几点:

  1. Node.js 是什么
  2. 如何安装 Node.js
  3. 如何管理 Node 版本
  4. NPM 包管理工具
  5. Yarn 包管理工具
  6. 包放在devDependencies还是dependencies

Node.js 是什么?

  • Node.js 是一个开源与跨平台的 Javascript 运行时环境。
  • Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。
  • Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。

如何安装 Node.js?

注:使用 Mac 的同学建议通过软件包管理器安装,使用 Windows 的同学建议通过安装包安装。

Node.js 可以通过多种方式进行安装,如下:

  1. 通过软件包管理器(便捷)。每种操作系统都有其自身的软件包管理器。

在 macOS 上,Homebrew 是业界的标准,在安装之后可以非常轻松地安装 Node.js(通过在 CLI 中运行以下命令):

brew install node

注:其他适用于 Linux 和 Windows 的软件包管理器

  1. 通过安装包。下载安装包进行安装。

官方软件包下载地址

安装详情请参考安装指南

如何管理 Node 版本?

nvm 出现

Node.js版本更新速度比较快,有时候对 node 版本有要求,有时候需要切换到指定的 node 版本来重现问题等。遇到这种需求的时候,我们需要能够灵活的切换 node 版本。

nvm 就是为解决这个问题而产生的,它可以方便的在同一台设备上进行多个 node 版本之间切换。

注:nvm 是 Mac 下的 Node 管理工具,有点类似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node, 官方推荐使用 nvmw 或 nvm-windows。

安装 nvm

  1. 卸载已安装到全局的 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 模块注册的软链
  1. 安装 nvm

参考官方文档,在终端执行:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

注:安装完成后请重新打开终端环境,Mac 下推荐使用 oh-my-zsh 代替默认的 bash shell。

nvm 常用命令

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包

使用 .nvmrc 文件配置项目所使用的 node 版本

如果你的默认 node 版本(通过 nvm alias 命令设置的)与项目所需的版本不同,则可在项目根目录或其任意父级目录中创建 .nvmrc 文件,在文件中指定使用的 node 版本号,例如:

cd <项目根目录>    #进入项目根目录
echo 4 > .nvmrc    #添加 .nvmrc 文件
nvm use            #无需指定版本号,会自动使用 .nvmrc 文件中配置的版本
node -v            #查看 node 是否切换为对应版本

NPM 包管理工具

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题。

详情请查看NPM 使用介绍

Yarn 包管理工具

Yarn 是 Facsbook 公司开发的用于替换 npm 的包管理工具。

详情请查看Yarn 使用介绍

包放在devDependencies还是dependencies

详情请查看包放在devDependencies还是dependencies

参考

Nodejs中文文档

Nodejs入门教程

Git仓库

使用 nvm 管理不同版本的 node 与 npm