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

相关推荐
亚林瓜子11 分钟前
Spring Boot 集成 ip2region 离线 IP 库实战指南
java·spring boot·后端·ip·ip2region
盛世宏博智慧档案38 分钟前
恒湿净化一体机联动开发:档案馆温湿度阈值判断与启停控制实践
java·后端·struts·恒湿机·加湿除湿消毒净化一体机
兔子零102441 分钟前
FastAPI 零基础入门教程:写过 Node.js,就能轻松学会 Python 后端开发(一)
前端·后端·python
Thneonl44 分钟前
ZK、etcd、Consul 怎么选:差别不在共识,在壳
后端·架构
vipxieliang1 小时前
ValidX 应用于 HR系统员工信息验证:入职、离职、社保数据
java·spring boot·后端
孟陬1 小时前
利用 TypeScript `asserts` function 语法定制一个类型缩窄的 `assertIncludes`
typescript·node.js
花间相见1 小时前
【计算基础|网络15】【上手】Socket 网络编程:亲手写 TCP/UDP 程序
后端
damoluomu1 小时前
静态站点生成器怎么选:Node.js 生态里常用的五个(番外一)
javascript·css·typescript·node.js·html
huaweichenai1 小时前
spring boot实现base64上传
java·spring boot·后端
ThinkerQAQ_1 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
后端