第Ⅰ章-IV npm yarn pnpm 包管理器

第Ⅰ章-Ⅰ 了解Vue3 创建一个Vue3项目
第Ⅰ章-Ⅱ Vue3自定义创建项目 项目文件详解
第Ⅰ章-III Vite 创建vue3 项目
第Ⅰ章-IV npm yarn pnpm 包管理器

第Ⅰ章-IV npm yarn pnpm 包管理器

简介

它们用于帮助开发者管理项目中的依赖关系。

npm

随Node.js一起发布,因此得到广泛采用。

工作原理

npm 通过package.json文件管理项目的依赖。当你安装一个包时,npm会将包及依赖下载到node_modules目录中

  • 广泛的生态系统,有大量可用的包
  • 可能会出先重复包的问题,因为每个包可能会下载多个相同的子依赖。
    版本锁文件:package-lock.json

yarn

2016年Facebook(Meta)发布,作为npm的替代品。它解决了当时npm在版本锁定和网络性能方面的一些问题。

工作原理

也是用pacakge.json文件,并在安装依赖时生成一个yarn.lock文件,确保项目依赖的一致性。

  • 更快的安装速度和更好的依赖缓存机制。
  • 提供了并行安装机制,加快了包的安装过程。

版本锁文件:yarn.lock

pnpm

允许多个项目共享相同的包版本,而无需多次下载或存储。

工作原理

使用成为"硬链接"[^1]的方法来管理node_modules,允许多个项目共享相同的包版本,而无需多次下载或存储。

  • 高效存储管理,使用硬链接和符号链接减少重复数据的存储。
  • 更快的执行速度,在出现大量共享依赖。
  • 严格的依赖书管理。

版本锁文件:pnpm-lock.json

如果项目需要优化磁盘使用或有大量重复依赖 可以选择pnpm

如果你需要更快的依赖安装和稳定的依赖管理可以选择yarn

[^1]对文件系统中的实际文件的另一个引用或指针。硬链接与文件名的关系时多对一的关系。

功能脚本

添加依赖

npm install [package] / npm i [package]
yarn add [package]
pnpm pnpmadd [package]

移除依赖

npm uninstall [package]
yarn add [package]
pnpm add [package]

安装所有依赖

npm update [package]
yarn upgrade [package]
pnpm update [package]

查看依赖信息

npm info [package]
yarn info [package]
pnpm info [package]

缓存管理

npm cache clean --force
yarn cache clean
pnpm store prune

运行脚本

npm run [script]
yarn run [script]
pnpm run [script]

提示:npm 中run关键词在大多数情况下必须。yarn 允许执行脚本省略。pnpm允许你执行任何脚本时省略run.

切换源

npm config set registry 镜像
yarn config set registry 镜像
pnpm cconfig set registry 镜像

临时切换源

npm install [package] --registery 镜像
yarn add [package] --registery 镜像
pnpm add [package] --registery 镜像

常用源

相关推荐
觉醒法师5 分钟前
HarmonyOS开发 - 电商App实例二( 网络请求http)
前端·http·华为·typescript·harmonyos·ark-ts
沈剑心5 分钟前
Kotlin的协程,真能提升编程效率么?
android·前端·kotlin
堕落年代15 分钟前
Vue主流的状态保存框架对比
前端·javascript·vue.js
OpenTiny社区26 分钟前
TinyVue的DatePicker 组件支持日期面板单独使用啦!
前端·vue.js
冴羽26 分钟前
Svelte 最新中文文档教程(22)—— Svelte 5 迁移指南
前端·javascript·svelte
树上有只程序猿30 分钟前
Vue3组件通信:多个实战场景,轻松玩转复杂数据流!
前端·vue.js
剪刀石头布啊38 分钟前
css属性值计算过程
前端·css
bin915343 分钟前
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14基础固定表头示例
前端·javascript·vue.js·ecmascript·deepseek
小华同学ai1 小时前
吊打中文合成!这款开源语音神器效果炸裂,逼真到离谱!
前端·后端·github
颜酱1 小时前
后台系统从零搭建(三)—— 具体页面之部门管理(抽离通用的增删改查逻辑)
前端·javascript·react.js