npm、pnpm、yarn使用以及区别

npm

  • 使用
    • 安装包 :在项目目录下,npm install <包名> 用于本地安装包到 node_modules 目录,并添加到 package.jsondependencies 中;npm install -g <包名> 用于全局安装,适用于命令行工具等。
    • 初始化项目npm init 可创建 package.json 文件,按提示输入相关信息;npm init -y 可快速生成默认配置的 package.json
    • 更新包npm update <包名> 更新包到最新版本(符合版本规则)。
    • 卸载包npm uninstall <包名> 本地卸载;npm uninstall -g <包名> 全局卸载。
    • 运行脚本 :在 package.jsonscripts 字段定义脚本,如 "start": "node app.js" ,通过 npm run start 运行 。
  • 特点
    • 优点:是 Node.js 默认包管理器,用户基数大,生态系统丰富,包资源多;配置选项灵活,可高度自定义安装过程。
    • 缺点:早期安装速度慢(现已有改善);不同环境依赖版本可能不一致,导致 "依赖地狱";缓存管理不够智能,占用磁盘空间。

yarn

  • 使用
    • 安装包yarn add <包名> 安装到项目,添加到 dependenciesyarn add -D <包名> 安装到开发依赖(devDependencies ) 。
    • 初始化项目yarn init 类似 npm init
    • 更新包yarn upgrade <包名>
    • 卸载包yarn remove <包名>
    • 运行脚本 :定义在 package.jsonscripts 中,yarn <脚本名> 运行。
    • 离线模式:可利用缓存依赖,无网络时也能安装。
  • 特点
    • 优点:安装速度快,采用并行下载和高效依赖解析算法;保证安装结果一致性,解决依赖版本混乱问题;有安全检查功能;支持多包工作空间管理。
    • 缺点:与 npm 虽兼容,但部分 npm 特定功能或插件可能无法完美运行。

pnpm

  • 使用
    • 安装包pnpm add <包名> 本地安装;pnpm add -g <包名> 全局安装。
    • 初始化项目pnpm init
    • 更新包pnpm up <包名> ;指定版本 pnpm up <包名>@<版本号>
    • 卸载包pnpm remove <包名> 本地卸载;pnpm remove --global <包名> 全局卸载。
    • 管理 node 版本pnpm env list --remote 查看可用版本;pnpm env use --global <node版本号> 切换版本。
  • 特点
    • 优点:通过硬链接和文件复用技术,减少磁盘占用,安装速度快;完全兼容 npm 和 yarn 的配置文件;默认严格模式,版本控制精确,避免依赖冲突;跨平台性能好。
    • 缺点:社区相对较小,遇到问题时可获取资源可能较少;部分 IDE 或 CI/CD 工具支持不如 npm 和 yarn 成熟。

三者选择上,追求速度和磁盘空间效率选 pnpm;大型项目需一致性和安全检查选 yarn;看重生态丰富和灵活性选 npm。

相关推荐
AI 编程助手GPT41 分钟前
VS Code 1.133 实战:Claude 可免 GitHub 登录,HTML 保存后自动刷新
前端·html·github
灯澜忆梦1 小时前
【基于GO的Web开发3】gin框架_HTML渲染
前端·golang·gin
dyxal3 小时前
ENOSPC 错误完全解析:文件监视器数量不足的终极解决方案
npm
小徐_23337 小时前
wot-ui-cli 1.1.0 发布:支持 OpenCode、Antigravity,wot-ui 图标迁移不再靠猜
前端
__zRainy__8 小时前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
西瓜有点饿8 小时前
PostCSS 和 UnoCSS 的作用和区别
前端·postcss
伟大的兔神9 小时前
我做了一个本地优先的 AI 图片工作台:Loomora v1.0.0 正式发布
前端·javascript·vue.js
90后的晨仔10 小时前
uni-app项目 Vue3 状态管理 Pinia 完全指南:从概念到实战的深度解析
前端
90后的晨仔10 小时前
uni-app 在 iOS 平台跳转页面时移除底部安全区域的完整技术指南
前端
用户9385156350710 小时前
React + JWT 登录鉴权底层原理与工程化实践
前端·react.js