前端工程化工具系列(七)—— PNPM(v9.2.0):高性能的 NPM 替代品

PNPM(Performant NPM)是一个高效的 NPM 包管理器,它使用硬链接和符号链接来减少磁盘空间的使用,并提高了安装速度。

1. 环境要求

v9 的 PNPM 需要 Node.js v18+。

2. 安装

npm i -g pnpm

3 基本功能

3.1 安装 NPM 包

  1. 安装单个包,可以使用以下两种方式:
pnpm add 包名
pnpm i 包名

i 是 install 的简写,例:npm i jest

  1. 安装项目中所有依赖
pnpm i

3.2 移除包

pnpm remove 包名

4 进阶功能

4.1 管理 Node.js 版本(替代 nvm 或者 n )

  1. 使用 Node.js 最新版本,如没有则自动安装。
pnpm env use -g lts
  1. 使用特定版本,如没有则自动安装
pnpm env use -g 18
  1. 安装版本(以下为安装最新版本以及 18 版本)
pnpm env add -g lts 18
  1. 卸载版本
pnpm env remove -g 18

4.2 更新依赖项(替代 npm-check-updates)

根据指定的范围将程序包更新到其最新版本。如: ^6.3.1 可以更新到 ^6.5.1。

pnpm up

将所有依赖项更新为最新版本。如: ^6.3.1 更新到 ^7.5.3。

pnpm up -L

up 是 update 的简写

4.3 执行脚本

  1. 执行 package.json 中的脚本:
pnpm run 脚本名称
  1. 在项目范围内执行命令
    当该命令没有全局安装,只在此项目下安装,则使用以下命令(类似 NPM 中的 npx):
pnpm exec 某个命令,如:eslint
  1. 临时下载的软件包运行可执行命令(类似 NPM 中的 npx)
pnpm dlx 命令,如:create-react-app ./my-app

4.4 Monorepo支持(替代 Lerna)

在项目根目录下创建 pnpm-workspace.yaml,以下内容按需填写。

packages:# 目录中的所有软件包/- 'packages/*'# 组件子目录中的所有软件包/- 'components/**'# 排除测试目录内的软件包- '!**/test/**'
  1. 安装本地的某个子包作为依赖,下方前者是需要在某个包下进行安装,后者是要安装的包名
pnpm -F "./packages/**" add "./packages/**"
  1. 所有子包批量发布
pnpm -r publish

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24184.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

出售iPhone前的必做步骤:完全擦除个人数据的方法

当您准备在闲鱼上转售旧 iPhone、将其捐赠、送给朋友或通过 Apple 回收之前,您可能会选择执行“恢复”操作来擦除您的数据。但请注意,这一操作并不能真正删除设备中的数据。被“删除”或“格式化”的数据实际上仍存在于 iPhone 中,只是被系统…

CSS自定义属性

CSS自定义属性,更常被称为CSS变量,它允许我们赋予某一值一个特定的语义名称,然后在整个样式表中反复使用,无论是全局还是局部。接下来,让我们深入探索它的运作方式和使用场景。 1. 定义CSS自定义属性 CSS自定义属性的…

【TVM 教程】编译 PyTorch 目标检测模型

本文介绍如何用 Relay VM 部署 PyTorch 目标检测模型。 首先应安装 PyTorch。此外,还应安装 TorchVision,并将其作为模型合集(model zoo)。 可通过 pip 快速安装: pip install torch pip install torchvision或参考…

SpringBoot+Vue在线文档管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 员工管理员 系统功能截图

《精通ChatGPT:从入门到大师的Prompt指南》第1章:认识ChatGPT

第1章:认识ChatGPT 1.1 ChatGPT是什么 ChatGPT,全称为Chat Generative Pre-trained Transformer,是由OpenAI开发的一种先进的自然语言处理模型。它利用了深度学习中的一种技术——Transformer架构,来生成类人文本。ChatGPT通过对…

贪心算法-数组跳跃游戏(mid)

目录 一、问题描述 二、解题思路 1.回溯法 2.贪心算法 三、代码实现 1.回溯法实现 2.贪心算法实现 四、刷题链接 一、问题描述 二、解题思路 1.回溯法 使用递归的方式,找到所有可能的走步方式,并记录递归深度(也就是走步次数&#x…

玩转ChatGPT:最全学术论文提示词分享【上】

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在当今数字时代,人工智能(AI)技术正迅速改变各行各业的运作方式。特别是,OpenAI的ChatGPT等语言模型以其强大的文本生成能力,…

使用Ant-Design-Vue实现动态表头与数据填充的实战指南

好的,我将为你写一篇关于如何使用Ant-Design-Vue动态生成表头并填充数据的文章。这篇文章将包括一个基本的介绍,详细的步骤和示例代码,以帮助你实现这一功能。 --- # 使用Ant-Design-Vue动态生成表头并填充数据 在现代前端开发中&#xff…

Android ViewPager和ViewPager2的区别

一、实现方式 ViewPager内部是通过继承ViewGroup来实现的,ViewPager2内部是通过RecyclerView来实现的(效率更高) 二、支持方向 ViewPager只能横向滑动,ViewPager2可以横向以及竖向滑动 三、采用的适配器 ViewPager有两个适配…

算法:70. 爬楼梯

70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示…

【CTF MISC】XCTF GFSJ0170 János-the-Ripper Writeup(文件提取+ZIP压缩包+暴力破解)

Jnos-the-Ripper 暂无 解法 用 winhex 打开,提到了 flag.txt。 用 binwalk 扫描,找到一些 zip 压缩包。 binwalk misc100用 foremost 提取文件。 foremost misc100 -o 100flag.txt 在压缩包里。 但是压缩包需要解压密码。 用 Ziperello 暴力破解。 不…

mac安装nigix且配置 vue/springboot项目(本地/服务器)

一、mac安装Nigix 1. 查看是否存在 nginx 执行brew search nginx 命令查询要安装的软件是否存在 brew search nginx 2. 安装nginx brew install nginx 3. 查看版本 nginx -v 4. 查看信息 查看ngxin下载的位置以及nginx配置文件存放路径等信息 brew info nginx 下载的存…

Angular 由一个bug说起之六:字体预加载

浏览器在加载一个页面时,会解析网页中的html和css,并开始加载字体文件。字体文件可以通过css中的font-face规则指定,并使用url()函数指定字体文件的路径。 比如下面这样: css font-face {font-family: MyFont;src: url(path/to/font.woff2…

【路径规划】三维深度矩阵寻路算法

在三维空间中寻路相较于二维空间更为复杂,因为需要处理额外的维度。下面是一个示例,展示了如何使用深度优先搜索(DFS)算法在三维矩阵中寻找路径。 首先,我们需要定义三维矩阵,并编写一个递归的DFS函数来寻…

IDEA 中设置 jdk 的版本

本文介绍一下 IDEA 中设置 jdk 版本的步骤。 一共有三处需要配置。 第一处 File --> Project Structure Project 和 Modules 下都需要指定一下。 第二处 File --> Settings 第三处 运行时的配置

Linux基础2-基本指令4(cp,mv,cat,tac)

上篇文章我们说到了rmdir,rm,man,echo.重定向等知识。 Linux基础1-基本指令3-CSDN博客 本文继续梳理其他基础指令 1.本章重点 1.使用cp命令拷贝文件 2.使用mv命令移动文件 3.使用cat,tac查看小文本文件 2.cp命令 在linux中使用cp命令来拷贝粘贴文件 cp src(原文…

解决Nginx出现An error occurred问题

每个人遇到Nginx的An error occurred情况可能都不一样(见图1),Nginx造成该错误的原因: 1. 我在配置域名解析成IP时,没有把所有解析配置都修改,见图2:解析 *.hanxiaozhang.xyz 配置的是新IP地…

【名词解释】Unity的Inputfield组件及其使用示例

Unity的InputField组件是一个UI元素,它允许用户在游戏或应用程序中输入文本。InputField通常用于创建表单、登录界面或任何需要用户输入文本的场景。它提供了多种功能,比如文本验证、占位符显示、输入限制等。 功能特点: 文本输入&#xff…

如何发布自己的npm插件包

随着JavaScript在前端和后端的广泛应用,npm(Node Package Manager)已成为JavaScript开发者不可或缺的工具之一。通过npm,开发者可以轻松共享和使用各种功能模块,极大地提高了开发效率。那么,如何将自己开发的功能模块发布为npm插件包,与全球的开发者共享呢?本文将进行全…

Nvidia Jetson/Orin/算能 +FPGA+AI大算力边缘计算盒子:潍柴雷沃智慧农业无人驾驶

潍柴雷沃智慧农业科技股份有限公司,是潍柴集团重要的战略业务单元,旗下收获机械、拖拉机等业务连续多年保持行业领先,是国内少数可以为现代农业提供全程机械化整体解决方案的品牌之一。潍柴集团完成对潍柴雷沃智慧农业战略重组后,…