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 项目的依赖管理工作。

相关推荐
KYGALYX19 小时前
服务异步通信
开发语言·后端·微服务·ruby
掘了19 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
爬山算法20 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
Moment20 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
Cobyte21 小时前
AI全栈实战:使用 Python+LangChain+Vue3 构建一个 LLM 聊天应用
前端·后端·aigc
程序员侠客行1 天前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
Honmaple1 天前
QMD (Quarto Markdown) 搭建与使用指南
后端
PP东1 天前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
invicinble1 天前
springboot的核心实现机制原理
java·spring boot·后端
全栈老石1 天前
Python 异步生存手册:给被 JS async/await 宠坏的全栈工程师
后端·python