1.2、Node.js安装

这部分将介绍使用 Volta 来管理 Node.js 环境。Volta 是一个现代化的 JavaScript 工具管理器,提供了比传统 nvm 更好的性能和用户体验。通过使用 Volta 管理项目级别的 Node.js 版本,可以确保每个项目都有一个干净且独立的开发环境。

Volta

Volta 是用 Rust 编写的 JavaScript 工具管理器,具有以下特点:

  • 快速且可靠:基于 Rust 实现,性能优异
  • 项目智能:自动检测并切换到项目所需的 Node.js 版本
  • 跨平台:支持 Windows、macOS 和 Linux
  • 管理包管理器(npm、yarn、pnpm)的版本
  • 支持管理全局工具的特定版本

总的来说,Volta 提供了更现代化、更自动化的 Node.js 版本管理体验,特别适合团队协作和需要频繁切换项目的场景。

# NVM 需要手动切换版本
nvm use 22

# Volta 自动检测项目版本
cd my-project  # 自动切换到项目指定的版本

# Volta 固定项目版本
volta pin node@22

安装步骤

Unix-like 系统(macOS、Linux):

curl https://get.volta.sh | bash

Windows:

基本使用

# 安装 Node.js
volta install node@lts

# 设置项目 Node.js 版本, 将项目的运行时或包管理器设置为指定的版本
volta pin node@lts

# 安装包管理器
volta install npm@lts
volta install yarn@lts

# 查看当前工具版本
volta list

# 仅下载 node 到本地不安装
volta fetch node@lts

# 查看已经安装的 node 版本列表
volta list node

# 查看 node 安装路径
volta which node


volta -h
The JavaScript Launcher ⚡

Usage: volta [OPTIONS] [COMMAND]

Commands:
  fetch        Fetches a tool to the local machine
  install      Installs a tool in your toolchain
  uninstall    Uninstalls a tool from your toolchain
  pin          Pins your project's runtime or package manager
  list         Displays the current toolchain
  completions  Generates Volta completions
  which        Locates the actual binary that will be called by Volta
  setup        Enables Volta for the current user / shell
  run          Run a command with custom Node, npm, pnpm, and/or Yarn versions
  help         Print this message or the help of the given subcommand(s)

Options:
      --verbose       Enables verbose diagnostics
      --very-verbose  Enables trace-level diagnostics
      --quiet         Prevents unnecessary output
  -v, --version       Prints the current version of Volta
  -h, --help          Print help (see more with '--help')

npm(node package management)

npm(Node Package Manager)是Node.js的包管理工具,用于安装、发布和管理Node.js模块。它是Node.js的默认包管理工具,随同Node.js一起安装。

最新特性包括:

  1. npx:npx是npm 5.2.0版本引入的新命令,用于执行临时安装的模块。它可以直接运行本地安装的模块,而无需全局安装。例如,可以使用npx来运行项目依赖的模块,而无需在全局安装它们。
  2. npx create:npx create是一种快速创建项目的方式,它可以通过执行命令"npx create-"来创建一个新的项目。例如,可以使用"npx create-react-app my-app"来创建一个新的React应用程序。

与yarn和pnpm相比,npm是最流行的包管理工具之一,拥有大量的社区支持和生态系统。

  • yarn是由Facebook开发的另一种包管理工具,它具有更快的安装速度和更好的缓存机制。
  • pnpm是一个相对较新的包管理工具,它的主要优势是节省磁盘空间和更快的安装速度。

虽然pnpm大有后来居上的意味,但是,npm的生态系统更加完善,而且npm的新特性也在不断地更新和完善,因此npm仍然是最受欢迎的包管理工具之一。

为了解决npm、yarn、pnpm等各种包的管理问题,Node.js官方提供了Corepack工具,它是一个用于管理和分发Node.js核心模块的工具,旨在提供一个简单、可靠的方式来访问和使用Node.js核心模块。

Node.js Corepack的主要特性包括:

  1. 简化的安装和使用:Corepack可以通过一条简单的命令行指令来安装和更新Node.js核心模块。它提供了一个统一的接口,使得安装和使用核心模块变得更加简单和方便。
  2. 版本管理:Corepack允许你在不同的Node.js版本之间切换,并且可以管理和安装不同版本的核心模块。这对于开发者来说非常有用,可以轻松地切换和管理不同版本的Node.js核心模块。
  3. 快速的下载和更新:Corepack使用了高效的下载和缓存机制,可以快速地下载和更新核心模块。这样可以节省时间,并且可以在没有网络连接的情况下进行离线安装和更新。
  4. 可靠的分发:Corepack使用了Node.js团队提供的官方分发源,确保了核心模块的可靠性和安全性。它还支持自定义分发源,使得开发者可以使用自己的私有分发源。

总的来说,Node.js Corepack是一个方便、可靠的工具,可以帮助开发者更好地管理和使用Node.js核心模块。它简化了安装和更新的过程,提供了版本管理和快速下载的功能,同时保证了核心模块的可靠性和安全性。

Corepack目前还不是默认开启的功能,暂时先了解就可以了。

npm registry

npm registry 是 npm 的源,用于存储和分发 npm 包。

npm 的源有多种,包括官方源、国内源、私有源等。

常识

  • 国内安装会比国外快。所以能用https://npmmirror.com/就尽量用
  • 内网安装会比外网快。能在内网使用cnpm搭建一个npm私有源,就尽量用。

无论哪种情况,我们都需要切换npm源。

使用 volta 管理 npm registry

# 直接使用 npm config 命令 设置 npm registry 
volta run npm config set registry https://registry.npmmirror.com/

# 查看当前 registry
volta run npm config get registry

# 临时使用其他源
volta run npm install package-name --registry=https://registry.npmmirror.com/

使用 .npmrc 文件(推荐,可以版本控制):

# 在项目根目录创建 .npmrc 文件
echo "registry=https://registry.npmmirror.com/" > .npmrc

# 或者在用户目录创建全局配置
echo "registry=https://registry.npmmirror.com/" > ~/.npmrc

nrm(node registry management)(适合频繁切换源)

安装

$ npm install -g nrm

查看支持的源

$ nrm ls

* npm ---------- https://registry.npmjs.org/
  yarn --------- https://registry.yarnpkg.com/
  tencent ------ https://mirrors.cloud.tencent.com/npm/
  cnpm --------- https://r.cnpmjs.org/
  taobao ------- https://registry.npmmirror.com/
  npmMirror ---- https://skimdb.npmjs.com/registry/

切换源

$ nrm use cnpm  //switch registry to cnpm

  Registry has been set to: http://r.cnpmjs.org/

使用 Verdaccio(适合搭建私有源):

可以搭建私有 npm 源 支持缓存公共包 可以发布私有包

选择建议

  1. 如果是个人开发: 直接使用 npm config 命令或 .npmrc 文件就够用了 简单且不需要安装额外工具
  2. 如果经常需要切换源: 可以考虑使用 nrm 提供了便捷的源管理和切换功能
  3. 如果是企业开发: 建议搭建 Verdaccio 私有源 可以更好地管理私有包和缓存
  4. 如果是项目配置: 推荐使用 .npmrc 文件 可以随代码版本控制,确保团队使用相同的配置