一文看懂 Node.js、npm 与 nvm 的关系

一文看懂 Node.js、npm 与 nvm 的关系


本文面向刚接触 Node.js 生态的开发者,介绍了 Node.js 是什么、npm 的作用、nvm 的作用,并通过类比 Java 的 Maven/Gradle、pom.xml、JDK 版本管理等工具,帮助你快速理解它们之间的区别与联系。


1. Node.js 是什么?

Node.js 是一个基于 V8 引擎JavaScript 运行时环境
它让 JavaScript 不仅能在浏览器中运行,还能在 服务器端、命令行、桌面应用、物联网设备 上运行。

1.1 特点

  • 基于 V8 引擎:Node.js 内部用的是 Google Chrome 的 V8 JavaScript 引擎,性能高、执行快。

  • 事件驱动 + 非阻塞 I/O:Node.js 使用异步 I/O(输入输出),适合处理高并发请求。

  • 单线程 + 事件循环:Node.js 运行在单线程上,但通过事件循环机制处理大量并发请求。

  • 生态丰富,自带 npm(Node Package Manager) 包管理工具,其中有丰富的第三方库和模块,可以用来扩展功能和加速开发。。

1.2 常见用途

  • Web 后端开发:用 Express、Koa、NestJS 搭建网站和 API。

  • 前端工具链:webpack、vite、babel、eslint 等构建工具都是基于 Node.js。

  • 实时应用:聊天室、在线游戏、协作编辑。

  • 桌面应用:Electron(VS Code 就是用 Node.js + Electron 开发的)。

  • 脚本与自动化工具:写命令行工具、数据处理脚本。

2. npm 是什么?

npm 全称 Node Package Manager,是 Node.js 的包管理工具。 可以理解为 Java 的 Maven

2.1 作用

  1. 安装第三方库,类似于 Java 里的 Maven、Gradle。

    npm install express //下载依赖
    npm install -g npm //升级npm
    npm cache clean --force //清理缓存
    
  2. 管理依赖和版本(通过 package.json)。

    • 自动生成 package.json 文件,记录项目用到的依赖及版本。
    • npm install 会根据这个文件一次性安装所有依赖。
  3. 发布和共享包(npm registry 仓库)。

    • 开发者可以把自己的代码打包发布到 npm 官方仓库,供全球其他人使用。

      例如 lodashreactvue 都是通过 npm 分发的。

  4. 脚本管理(在 package.jsonscripts 中定义命令)

    "scripts": {
      "start": "node app.js",
      "dev": "nodemon app.js"
    }
    

2.2 npm vs maven

Java 世界 Node.js 世界 作用
Maven / Gradle npm / yarn / pnpm 包管理工具,用来下载、管理依赖包
pom.xml package.json 依赖与项目描述文件,记录依赖、版本、构建信息、脚本等
Maven Central 仓库 npm registry 中央仓库
mvn install npm install 下载依赖并放到本地
mvn clean package npm run build 构建打包(脚本可自定义)

Maven 偏向 Java 项目:依赖都是 jar 包,最终生成 war/jar。

npm 更通用:不仅能下载运行时依赖(比如 express),也能下载构建工具(比如 webpack、vite)。

package.json 功能更丰富:除了依赖外,还能配置项目脚本(相当于把一些常用命令封装进去)。

2.3 切换镜像(❗❗❗)

前因:npm默认提供的官方源:https://registry.npmjs.org/,由于服务器在国外,在国内访问可能 速度慢或经常超时。可以使用国内的淘宝镜像来提高访问速度。

2.3.1 临时使用淘宝镜像

  • 仅对当前命令有效,不会影响其他 npm 安装。
npm install express --registry=https://registry.npmmirror.***/

2.3.2 永久使用淘宝镜像

  1. 设置淘宝镜像:

    npm config set registry https://registry.npmmirror.***/
    
  2. 查看配置是否生效:

    npm config get registry
    //输出:https://registry.npmmirror.***/
    
  3. 恢复官方源:

    npm config set registry https://registry.npmjs.org/
    

2.3.4 安装***pm(可选)

***pm 是淘宝 NPM 镜像提供的 命令行工具,用法类似 npm,速度更快,且安装后不影响原生的npm使用。

npm install -g ***pm --registry=https://registry.npmmirror.***/
***pm install express

3. nvm 是什么?

nvm 全称 Node Version Manager,是 Node.js 的版本管理工具。

3.1 作用

  • 安装和切换不同版本的 Node.js:

    nvm install 16
    nvm use 16
    nvm install 18
    nvm use 18
    
  • 解决不同项目对 Node.js 版本的冲突。

  • 快速升级或降级 Node.js。

3.2 nvm vs npm

  • npm:管理 包(package)
  • nvm:管理 Node.js 运行时版本

4. 总结:生态定位

工具 对应 Java 工具 作用 查看版本
Node.js JDK 提供 JavaScript 运行环境 node -v
nvm SDKMAN / jEnv 管理 Node.js 版本 nvm -v
npm Maven / Gradle 管理依赖包和项目构建 npm -v

📌 一句话总结:

  • Node.js:运行环境
  • npm:包管理工具
  • nvm:版本管理工具
转载请说明出处内容投诉
CSS教程网 » 一文看懂 Node.js、npm 与 nvm 的关系

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买