目录

一、什么是pnpm

1.节省磁盘空间提高安装效率

2.创建非扁平的node_modules目录结构 

二、pnpm的安装和使用

1.安装全局pnpm

2.查看pnpm版本

三、pnpm在monorepo架构中的使用

1.在根目录pnpm初始化生成package.json

2.配置工作空间

3.安装项目依赖

4.暴露公用方法

四、pnpm常用命令


一、什么pnpm

pnpm又称 performant npm,翻译过来就是高性能npm

1.节省磁盘空间提高安装效率

pnpm通过使用链接符号链接(又称软链接)的方式来避免重复安装以及提高安装效率。

硬链接:和原文件共用一个磁盘地址,相当于别名作用,如果更改其中一个内容,另一个也会跟着改变

符号链接(软链接):是一个新的文件指向原文路径地址,类似于快捷方式

官网原话:

使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同依赖包,那么,你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被存放一个统一位置,因此:

1.如果你对同一依赖包需要使用不同版本,则仅有 版本之间不同文件会被存储起来。例如,如果某个依赖包包含 100 个文件,其发布了一个新 版本,并且新版本中只有一个文件有修改,则pnpm update需要添加一个新文件到存储中,而不会因为一个文件的修改而保存依赖包的所有文件。

2.所有文件都保存在硬盘上的统一位置。当安装软件包时,其包含的所有文件都会硬链接自此位置,而不会占用额外硬盘空间。这让你可以项目之间方便地共享相同版本的依赖包。

最终结果就是项目和依赖包的比例来看,你节省了大量的硬盘空间,并且安装速度也大大提高了!

2.创建扁平node_modules目录结构 

二、pnpm安装使用

 

1.安装全局pnpm

npm i pnpm -g

2.查看pnpm版本

如果显示版本,说明安装成功

pnpm -v

三、pnpmmonorepo架构中的使用

如下结构,我们项目中有一个main应用,在web文件夹下还有一个react应用vue应用我们可以pnpm对依赖进行统一管理

1.在根目录pnpm初始化生成package.json

pnpm init

2.配置工作空间

新建pnpmworkspace.yaml文件

配置pnpmworkspace.yaml文件

packages:
  # 主项目
  - 'main-project'
  # 子目录下所有项目
  - 'web/**'

3.安装项目依赖

根目录运行如下命令,一键为所有项目安装依赖

pnpm i

4.暴露公用方法

创建common文件夹index.ts

② 在common文件夹中运行pnpm init初始化

pnpm init

③ pnpmworkspace.yaml文件中添加common文件夹

 ④ 编写index.ts文件暴露方法

export const hello = () => { console.log('hello') }

根目录运行pnpm -F mainproject add commoncommon里的方法暴露mainproject

这里的-F是–filter简写用于过滤指定package用法 pnpmfilter

pnpm -F main-project add common

 ⑥ 在页面引入公共方法

启动页面

pnpm -F  main-project dev

四、pnpm常用命令

#安装软件包及其依赖的任何软件包 如果workspace配置优先workspace安装
pnpm add <pkg>
#安装项目所有依赖
pnpm install
#更新软件包的最新版本
pnpm update
#移除项目依赖
pnpm remove
#运行脚本
pnpm run
#创建一个 package.json 文件
pnpm init
#以一个树形结构输出所有的已安装package的版本及其依赖
pnpm list

原文地址:https://blog.csdn.net/weixin_42214717/article/details/130065717

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_42372.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注