首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏快乐阿超

    pnpm

    官方网址:https://www.pnpm.cn/ 我们在使用npm下载前端所需依赖时,会反复下载、重复下载,如果有一款工具,能够缓存起来我们的下载,那就是pnpm了 快速 pnpm 是同类工具速度的将近 2 倍 高效 node_modules 中的所有文件均链接自单一存储位置 支持单体仓库 pnpm 内置了对单个源码仓库中包含多个软件包的支持 权限严格 pnpm 创建的 node_modules 默认并非扁平结构,因此代码无法对任意软件包进行访问 安装很简单,就像普通安装一个模块一样即可: npm i -g pnpm pnpm -v 使用yarn yarn global add pnpm pnpm -v

    43410编辑于 2022-08-21
  • pnpm原理

    pnpm原理 「想要理解pnpm是怎么做的,需要一些操作系统的知识」 1、文件的本质 在操作系统中,文件实际上是一个指针,只不过它指向的不是内存地址,而是一个外部存储地址(这里的外部存储可以是硬盘、U 包管理器下面)创建一个硬链接 按window+R调出窗口,以管理员身份运行,并且输入cmd,回车 由于pnpm包管理器文件夹在F盘,所以先切换到F盘,并且进入pnpm包管理器地址 输入: mklink 8、pnpm原理 pnpm使用符号链接和硬链接来构建node_modules目录 下面用一个例子来说明它的构建方式 假设两个包a和b,a依赖b: 假设我们的工程为proj,直接依赖a,则安装时,pnpm 为了解决一些书写不规范的包(读取间接依赖)的问题,又将所有的工程非直接依赖,使用符号链接加入到.pnpm/node_modules 中。 如果b依赖c,a又要直接用c,这种不规范的用法现在pnpm通过这种方式支持了。但对于那些使用绝对路径的奇葩写法,可能没有办法支持。

    93321编辑于 2022-08-11
  • 来自专栏愧怍的技术学习与分享

    pnpm monorepo实践

    在 这里 可查看使用了 pnpm 工作空间功能的最受欢迎的开源项目。 pnpm 要使用 monorepo 的话,需要创建 pnpm-workspace.yaml 文件,其内容如下 packages: - 'packages/*' 其中 packages 为多项目的存放路径 (一般为公共代码),pnpm 将 packages 下的子目录都视为一个项目。 假设现在我要为某个项目添加依赖,例如为 utils 模块添加 lodash 的话,按之前可能会 cd 到 utils 目录执行pnpm add loadsh ,其实完全不用,pnpm 提供 --filter 选项来指定包安装依赖,命令如下 pnpm --filter <package_selector> <command> 例如: pnpm -F @demo/utils add lodash -F等价于-

    1.9K10编辑于 2022-12-27
  • 来自专栏前端精读评论

    精读《pnpm

    使用 pnpm 很容易,可以使用 npm 安装: npm i pnpm -g 之后便可用 pnpm 代替 npm 命令了,比如最重要的安装包步骤,可以使用 pnpm i 代替 npm i,这样就算把 pnpm 使用起来了。 pnpm 的优势 用一个比较好记的词描述 pnpm 的优势那就是 “快、准、狠”: 快:安装速度快。 每个项目的 node_modules 下有 .pnpm 目录以打平结构管理每个版本包的源码内容,以硬链接方式指向 pnpm-store 中的文件地址。 这也是 pnpm 规则严格的体现,任何包都不应该有全局副作用,或者考虑好单例实现,否则可能会被 pnpm 装多次。

    1.4K20编辑于 2022-11-21
  • 来自专栏前端资源

    pnpm切换源后报错ERR_PNPM_REGISTRIES_MISMATCH

    工具都是有利有弊,使用 pnpm 过程中经常会出现一个错误: ERR_PNPM_REGISTRIES_MISMATCH  This modules directory was created using To recreate the modules directory using the new settings, run "pnpm install". 在切换了 registery 源后,pnpm 安装全局包会收到  ERR_PNPM_REGISTRIES_MISMATCH  报错需要执行一下: pnpm install -g pnpm install  -g pnpm 本文关键词:pnpm 切换源后报错,pnpm 切换源后报错 ERR_PNPM_REGISTRIES_MISMATCH,pnpm 切换 registery 后报错 ERR_PNPM_REGISTRIES_MISMATCH

    3.7K20编辑于 2023-03-16
  • 来自专栏南山种子外卖跑手的专栏

    pnpm技术体系之:打造企业级 pnpm 开源组件

    在上一篇《pnpm技术体系之:高性能包管理工具》讲到pnpm的优势,在本章节,我们开始着手搭建一个完整流程的开源组件。pnpm monorepo搭建本篇章的全部代码已上传到 github,有需要自取。 publish时自动被pnpm纠正为正常版本。 && pnpm build:core","build:core": "pnpm --filter small-color-ui build","build:utils": "pnpm --filter 它是一款切合pnpm体系下的一款管理版本控制和变更日志的工具,专注于多包存储库。虽然pnpm下暂时没有像lerna完善的发布流程工具,但changesets也算的上是官方推荐的一款,将就用吧。 发版执行命令:pnpm release,更新组件会发布到npm。

    2.7K73编辑于 2023-01-12
  • 来自专栏愧怍的技术学习与分享

    为什么使用pnpm

    相信此时的你都有点蠢蠢欲动了,而安装也很简单 安装​ 请查阅你的 node 版本与 pnpm 是否匹配 安装 | pnpm npm install -g pnpm 升级​ pnpm add -g pnpm 此时 pnpm 就已经安装完了,与 yarn 安装一样,都感觉没安装似的。 使用​ pnpm 命令几乎与 npm 一样,设置配置的方式也与 npm 相同,这里不妨尝试通过 pnpm 去下载 express 依赖,打开 CMD,将路径改成你平时写 js 代码的地方,切记不要在 C 最后​ 不过还是要提醒一句,即便 pnpm 能解决磁盘问题,但还是存在一定的兼容性,如果一个项目是用 npm 或者 yarn 进行构建的,使用 pnpm 是绝对免不了一些问题,小问题暂时想不到,大问题无法运行 ,所以请三思再考虑对已有项目是否尝试升级 pnpm

    68220编辑于 2022-12-27
  • 来自专栏coding个人笔记

    了解一下pnpm

    之前分享monorepo也提到了,尤雨溪把vue3和vite迁移使用pnpm,所以未来的包管理工具会不会是pnpm? 有趣的是Corepack现在只支持pnpm和yarn,当强制使用pnpm或者yarn的时候,用另外一种就会被拦截无法使用(npm却不会被拦截),而且还能强制使用pnpm或者yarn的版本,不需要自己手动下载某个 pnpm或者yarn的版本。 回到pnpm对磁盘空间的高效利用(monorepo就是这点的天然产物),官网地址 : 项目初衷:节约磁盘空间并提升安装速度 使用pnpm的开源项目还是蛮多的: https://pnpm.io/workspaces 看来使用pnpm并没有像官网说的那样直接平替npm、yarn。又或者说pnpm专门为了monorepo而生?

    67720编辑于 2022-12-02
  • 来自专栏静之森

    使用 pnpm 构建 Monorepo 项目

    pnpm 是什么 Fast, disk space efficient package manager pnpm 是新一代 node 包管理器。 pnpm 相比 yarn,npm,yarn PnP 安装包更快速,对包的依赖管理更偏平,对磁盘占用也有优势。 具体可以参考这篇文章: 为什么现在我更推荐 pnpm 而不是 npm/yarn? 开始 首先需要安装 pnpm,就不用多说了。然后 init 一个项目。 用 pnpm 安装全局共用的包,比如 react, react-dom。 Template: Innei / pnpm-workspace-monorepo

    4.2K10编辑于 2021-12-28
  • 来自专栏夜梦星尘的折腾日记

    安装nodejs | npm | pnpm

    安装pnpm npm install pnpm -g NVM 夜梦这里安装 nvm 来管理 node 版本,以 Ubuntu22.04 系统为例进行演示。

    1K10编辑于 2024-08-20
  • 来自专栏服务器运维笔记

    pnpm 为何广受好评

    /node_modules/.pnpm/lodash@3.0.0 ./node_modules/.pnpm/lodash@4.0.0 . /node_modules/.pnpm/package-a@1.0.0 ./node_modules/.pnpm/package-a@1.0.0/node_modules/package-a . /node_modules/.pnpm/package-b@1.0.0 ./node_modules/.pnpm/package-b@1.0.0/node_modules/package-b . /node_modules/.pnpm/package-c@1.0.0 ./node_modules/.pnpm/package-c@1.0.0/node_modules/package-c . /node_modules/.pnpm/package-d@1.0.0 ./node_modules/.pnpm/package-d@1.0.0/node_modules/package-d .

    54410发布于 2021-11-26
  • 来自专栏前端Q

    了解并实践 Monorepo 和 pnpm

    的使用 为什么用pnpm 关于为什么越来越多的人推荐使用pnpm,可以参考这篇文章[1] 这里简单列一下pnpm相对于yarn/npm的优势: 安装速度最快(非扁平的包结构,没有yarn/npm的复杂的扁平算法 .modlues.yaml包含了一些pnpm包管理的配置信息。 如下图: image.png 可以看到 .pnpm目录的实际指向的pnpm store的路径、pnpm包的版本等信息 .pnpm目录可以看到所有安装了的依赖包。 pnpm workspace实践 1. 新建仓库并初始化 新建目录pnpm-workspace-demo,执行npm init / pnpm init初始化项目,生成 package.json 2. 指定项目运行的Node、pnpm版本 为了减少因node或pnpm的版本的差异而产生开发环境错误,我们在package.json中增加engines字段来限制版本。

    1.1K30编辑于 2023-08-23
  • 来自专栏前端笔记薄

    使用pnpm极速进入monorepos模式

    前置知识:会使用或了解npm,yarn,pnpm等工具之一。 不想看背景和为什么的,请直接看实践部分 背景 近来对tripdocs编辑器项目(已开源)进行重构,目标是使他能够按需加载指定的功能。 (我觉得完全能接受) monorepos教程——pnpm版本 为什么要用pnpm? 因为pnpm显著加快了安装依赖的速度,减少了依赖包占用的电脑硬盘空间。 lock文件中也有体现 缺点(已修复) 2022年之前提到了 pnpm 因为软连接而不能使用的场景: Electron 应用无法使用 pnpm 部署在 lambda 上的应用无法使用 pnpm react 创建pnpm-workspace.yaml 文件,内容如下 ``` packages:all packages in direct subdirs of packages/ 'packages/*' 参考链接: 官网:pnpm-workspace_yaml 官网:pnpm workspaces 谈论从把多项目合并成一个项目中获得的收益 Pnpm: 最先进的包管理工具

    1.5K20编辑于 2023-03-08
  • 来自专栏站长的编程笔记

    pnpm - 高性能的 npm

    1. pnpm 介绍 2. pnpm 安装 3. pnpm 使用 4. pnpm 简写 1. pnpm 介绍 ---- pnpm 官网: https://pnpm.io pnpm 含义为 performant npm,意指: 高性能的 npm 2. pnpm 安装 ---- 全局安装 pnpm npm i pnpm -g mac 系统也可以使用 homebrew 安装: brew install pnpm 查看 pnpm 版本 pnpm -v pnpm --version 3. pnpm 使用 ---- 创建 package.json 文件 pnpm init pnpm init --yes 安装项目的所有依赖项 pnpm install 安装依赖 源码下载站 # 运行时依赖 pnpm add <package> pnpm add <package> --save # 开发时依赖 pnpm add <package pnpm i <package> -S # 安装开发时依赖 pnpm i <package> -D

    1.3K21编辑于 2022-12-06
  • 来自专栏【全栈开发之路】

    npm、yarn与pnpm详解

    三、pnpm 简介: pnpm是另一种广受欢迎的JavaScript包管理器,其独特之处在于采用了名为 硬链接 的安装策略,从而极大地节省磁盘空间。 常用命令: pnpm install:安装package.json文件中列出的所有依赖项。 pnpm add <package-name>:安装指定包。 pnpm remove <package-name>:卸载指定包。 pnpm upgrade:升级所有已安装包至最新版本。 锁定文件:pnpm使用pnpm-lock.yaml文件锁定依赖版本,该文件同样提供了强大的版本控制能力。 性能: Yarn和pnpm在安装速度方面优于npm,尤其对于大型项目和频繁安装的情况。 pnpm在磁盘空间占用上表现最佳。

    99910编辑于 2024-06-14
  • 来自专栏啦啦啦啦前端

    npm、pnpm、yarn之间的区别

    1 引言 平时在项目开发中,经常用到npm、pnpm、yarn这些来安装包,但是它们之间到底有什么区别呢,一直没太搞明白。 pnpm 是一种较新的包管理工具,旨在解决npm中的依赖项重复安装的问题。 3.2 使用实例 # 在项目中安装依赖项 pnpm add lodash # 全局安装包 pnpm add -g create-react-app # 查看已安装的包 pnpm list # 清空缓存 pnpm: 安装速度较快,尤其在多项目工作区中。 yarn: 使用并行下载,速度相对较快。 pnpm: 支持并发安装,提高了安装速度。 yarn: 使用并行下载,速度相对较快。 5.4 稳定性 npm: 稳定、成熟,广泛使用。 pnpm: 相对较新,但社区正在不断发展。

    4.1K20编辑于 2023-12-02
  • 来自专栏【全栈开发之路】

    pnpm的安装与配置(WindowsmacOS)

    步骤二:安装PNPM 打开命令提示符(CMD)或PowerShell,执行以下命令以全局安装PNPM: npm install --global pnpm 步骤三:配置PNPM镜像源(可选,提高下载速度 PNPM版本: pnpm -v 若成功输出PNPM的版本号,则表明已正确安装。 步骤五:配置环境变量(仅当无法全局访问PNPM时) 如果安装Node.js时没有自动设置环境变量,您需手动将PNPM的可执行文件路径添加至系统PATH中: 找到PNPM的安装目录(通常是 %APPDATA 同样借助Homebrew来安装PNPM: brew install pnpm 步骤四:配置PNPM镜像源(可选) 要更改至国内镜像源,执行: pnpm config set registry https 共同部分 不论是在Windows还是macOS上安装完成PNPM后,您可以在项目中利用pnpm命令来初始化项目、添加和管理依赖包: 初始化新项目: pnpm init 添加依赖: pnpm add <package-name

    21.3K11编辑于 2024-06-14
  • 来自专栏前端资源

    pnpm link全局本地开发组件包

    pnpm link <dir> pnpm link --global pnpm link --global <pkg> 配置项 --dir <dir>, -C 默认值:当前工作目录 类型:路径 将 link pnpm link --global 将此命令在执行的位置或通过 –dir 选项指定的位置链接到全局的 node_modules,这样它就可以通过 pnpm link --global <pkg> 从另一个软件包中引用 pnpm unlink 取消链接 取消链接一个系统范围的 package (相对于 pnpm link). 类似于 yarn unlink,但 pnpm 会在删除外部链接后重新安装依赖项。 如果要删除使用 pnpm link --global <package> 建立的链接,则应使用 pnpm uninstall --global <package>。 pnpm unlink 仅删除当前目录中的链接。

    1.2K10编辑于 2024-03-29
  • 来自专栏Super 前端

    npm vs pnpm 之幽灵依赖

    :项目使用 npm 安装依赖可以正常运行,而使用 pnpm 安装依赖运行报错! pnpm 报错:Error: Cannot find module '@sindresorhus/is' 左侧:npm;右侧:pnpm 通过安装的结构,便可以察觉问题: 使用 npm 安装,所有依赖都被提升到了 下,其他在 .pnpm(扁平化) 目录下。 /node_modules/node-emoji .pnpm 的存在避免了循环引用和层级过深的问题(扁平化) node_modules └─ .pnpm | ├─ node_modules | | pnpm install --shamefully-hoist

    30300编辑于 2025-05-31
  • 来自专栏前端开疆扩土之路

    从npm发展历程看pnpm的高效

    概述 pnpm - 速度快、节省磁盘空间的软件包管理器 perfomance npm ,即 pnpm (高性能npm) 优势 快速 pnpm 是同类工具速度的将近 2 倍 高效 node_modules ,后面我们会针对npm的发展历史中存在的问题 来对比说明,pnpm的提出动机,pnpm 的优势在哪里,为什么具备这些优势。 pnpm出现就是为了解决现在npm 存在的问题,正如官网pnpm 所形容自己的是一款速度快,节省磁盘空间的软件包管理器。 .pnpm/B@1.0.0/node_modules/B |_ .pnpm |_ A@1.0.0 |_ node_modules |_ A => pnpm/store/A .pnpm 中存放着所有的包。最终硬链接指向指向全局pnpm 仓库里的store目录下。

    2.5K40编辑于 2022-09-28
领券