Node.js 编程实战:npm和yarn基础使用

在 Node.js 项目开发中,包管理工具是不可或缺的基础设施。无论你是在搭建后端服务器、构建前端工程,还是创建命令行工具,都需要依赖成千上万的第三方包。因此,理解 npm 与 yarn 的使用方法,对于提升开发效率、保证项目可维护性至关重要。

本篇文章将带你快速掌握 npm 与 yarn 的核心概念、基本命令以及日常开发中最常用的技巧。


一、什么是包管理工具?

当你开始一个 Node.js 项目时,会使用各种第三方库,例如:

  • Express(搭建 Web 服务)
  • axios(请求 HTTP 接口)
  • lodash(工具方法库)
  • moment / dayjs(时间处理)

这些依赖包由 npm 或 yarn 来完成:

  • 下载与管理依赖
  • 管理版本号
  • 配置项目脚本
  • 发布自定义模块

简而言之,包管理工具就是项目依赖的"仓库管理员"。


二、npm:Node.js 自带的包管理器

npm 全称 Node Package Manager,是 Node.js 安装包中自带的工具,生态最为庞大。

npm 常用命令

1. 查看版本

bash 复制代码
npm -v

2. 初始化项目

生成 package.json:

bash 复制代码
npm init -y

3. 安装依赖

安装到 dependencies:

bash 复制代码
npm install express

安装到 devDependencies:

bash 复制代码
npm install nodemon --save-dev

4. 全局安装

bash 复制代码
npm install -g typescript

5. 删除依赖

bash 复制代码
npm uninstall express

6. 清理缓存

bash 复制代码
npm cache clean --force

npm 使用简单直接,适合入门且更加官方。


三、为什么出现 yarn?

npm 在早期存在以下问题:

  • 安装速度慢
  • 锁文件不稳定
  • 安装结果不可复现

为了解决这些痛点,Facebook 推出了 yarn,它提供了更快、更稳定的安装体验。

如今 npm 经过多次升级性能已经提升许多,但 yarn 仍拥有大量用户。


四、yarn 的常用命令

查看版本:

bash 复制代码
yarn -v

初始化项目:

bash 复制代码
yarn init -y

安装依赖:

bash 复制代码
yarn add express

安装开发依赖:

bash 复制代码
yarn add nodemon -D

删除依赖:

bash 复制代码
yarn remove express

全局安装:

bash 复制代码
yarn global add typescript

查看已安装包:

bash 复制代码
yarn list

相比 npm,yarn 的输出信息更简洁,速度也更快。


五、npm 与 yarn 命令对照表

功能 npm yarn
初始化项目 npm init -y yarn init -y
安装项目依赖 npm install yarn
安装包 npm install xxx yarn add xxx
安装开发依赖 npm install xxx -D yarn add xxx -D
删除包 npm uninstall xxx yarn remove xxx
全局安装 npm install -g xxx yarn global add xxx
运行脚本 npm run start yarn start

你可以看到 yarn 的命令更简短。


六、package.json:npm 与 yarn 的核心文件

无论你使用 npm 还是 yarn,package.json 都扮演着中心角色。它记录:

  • 项目名称与版本
  • 依赖列表
  • 开发依赖
  • 执行脚本
  • 是否为 ES Module

示例:

json 复制代码
{
  "name": "node-demo",
  "version": "1.0.0",
  "scripts": {
    "start": "node index.js"
  }
}

日常开发中,你经常会向 scripts 中添加测试、构建、开发命令。


七、package-lock.json 与 yarn.lock 的作用

为了确保项目在任何时间、任何机器上安装的依赖版本一致,包管理器会生成锁文件。

  • npm 使用 package-lock.json
  • yarn 使用 yarn.lock

锁文件可以避免"今天能运行,明天依赖版本变了就崩了"的情况。

锁文件是必须提交到代码仓库的。


八、npm 与 yarn 应该怎么选?

适合使用 npm 的情况

  • 纯 Node.js 后端项目
  • 希望保持官方工具链
  • 需要较少的额外配置
  • 团队不追求极致性能

npm 初学容易,安装即可使用。

适合使用 yarn 的情况

  • 前端工程规模较大
  • 依赖数量多且安装频繁
  • 任何需要快速安装速度的项目
  • 多人协作需要更稳定的锁文件

yarn 的并行下载能力更优秀,适合大型前端项目。


九、混合使用会有什么问题?

在一个项目中,如果同时使用 npm 和 yarn,会导致:

  • 依赖解析混乱
  • 锁文件重复
  • node_modules 内容不一致

建议:

一个项目只用一个包管理器

要么统一用 npm,要么统一用 yarn,避免混乱。


十、总结

npm 与 yarn 是 Node.js 项目构建的基础工具,它们的作用都是帮助开发者高效管理依赖。npm 更官方、更易上手,而 yarn 更快速、更适合大型工程。

日常开发中,只要掌握:

  • 如何安装依赖
  • 如何添加脚本
  • 如何管理锁文件
  • 如何全局与本地安装工具

就可以轻松胜任大多数 Node.js 项目的依赖管理工作。

相关推荐
接着奏乐接着舞。39 分钟前
部署BFF与前端的踩坑与经验记录
前端·node.js
一灯架构7 小时前
90%的人答错!一文带你彻底搞懂ArrayList
java·后端
mldong9 小时前
Python开发者狂喜!200+课时FastAPI全栈实战合集,10大模块持续更新中🔥
后端
GreenTea9 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
Moment11 小时前
AI 全栈指南:NestJs 中的 Service Provider 和 Module
前端·后端·面试
IT_陈寒11 小时前
为什么我的JavaScript异步回调总是乱序执行?
前端·人工智能·后端
Moment11 小时前
AI全栈入门指南:NestJs 中的 DTO 和数据校验
前端·后端·面试
小村儿12 小时前
Harness Engineering:为什么你用 AI 越用越累?
前端·后端·ai编程
小码哥_常12 小时前
为什么PUT和DELETE请求在大公司中逐渐被弃用?
后端
宫_商_角_徵12 小时前
动态代理到底在做什么?
后端