【javascript】关于path-package

news/2025/2/12 8:32:50/

背景

一个老的vue项目,预览pdf文件的时候,电子签章不显示

解决方案

由于是老项目,升级版本存在风险,然后又找到一些解决方案,都是修改源码,修改源码就引出了今天的主题 path-package,我们需要修改node modules下面某个依赖包的源文件。【但是大部分最好不要这样改,直接升级包是最保险的,除非一些特殊的情况】

path-package

官方文档:https://github.com/ds300/patch-package
作用: 这个包能让你修改并保存对npm 依赖包的修改。

上手

1, 第一步,安装path-package这个包

npm install patch-package --save-dev

2, 在package.json的scripts里面添加一行执行脚本

"postinstall": "path-package"

3, 修改node_modules目录下的源码,我们目前遇到的vue-pdf预览问题,是修改 node_modules\pdfjs-dist\es5\build\pdf.worker.js 这个文件下面的,_this3.setFlags(_util.AnnotationFlag.HIDDEN); 这一行代码

我们将这行代码注释在这里插入图片描述
运行代码,预览问题已经解决了

4,将此次更改持久化

npx path-package [YOUR-PACKAGENAME]

  npx patch-package pdfjs-dist

此时项目根目录会多出一个patches文件夹,里面会有一个文件
在这里插入图片描述
文件内容如下
在这里插入图片描述
5, commit 你的提交就OK了

这个包的原理是先记录你的改动,install之后,根据这个patches文件改动源信息,去执行脚本更新这个依赖包里面的内容。


http://www.ppmy.cn/news/993461.html

相关文章

Java课题笔记~数据库连接池

一、数据库连接池 1.1 数据库连接池简介 数据库连接池是个容器,负责分配、管理数据库连接(Connection) 它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数…

远距离传输大型文件:如何应对不同地区的网络环境和带宽约束

在现代社会中,远程传输大文件已经变得非常常见了。无论是个人生活还是各种组织之间的合作和协作,都需要频繁地进行文件传输。但是,由于不同地区的网络状况和带宽限制,传输大文件可能会遇到很多问题。因此,如何应对不同…

vue使用driver.js完成页面引导的功能

需求:给客户做一个页面引导,教客户怎么做 效果: driverjs官方文档 一.安装driver.js # Using npm npm install driver.js# Using pnpm pnpm install driver.js# Using yarn yarn add driver.js 二.在自己需要引导的页面上引入driver.js i…

redis 淘汰策略和持久化

文章目录 一、淘汰策略1.1 背景1.2 淘汰策略 二、持久化2.1 AOF日志2.1.1 AOF配置2.1.2 AOF策略2.1.3 AOF缺点2.1.4 AOF Rewrite2.1.5 AOF Rewrite配置2.1.6 AOF Rewrite缺点2.1.7 fork进程时的写时复制2.1.8 大key对持久化的影响 2.2 RDB快照2.2.1 RDB配置2.2.2 RDB缺点 2.3 混…

搞活系列-Java NIO之偏偏不用buffer.flip()会出现什么问题?

最近看博客又看到了Java NIO相关的博客,其中有讲解NIO和传统IO关于文件复制的文章,看到了如下的代码: /**** channel用例* 基于channel的文件复制*/Testpublic void fileCopyByChannel(){try {FileInputStream fileInputStream new FileInpu…

Linux-MySQL安装

配置: 1.VMware workstation pro 2.MySQL 3.centOS 5.7版本 1.配置yum仓库 #更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022#安装 rpm --Uvh https://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 2.安装mysql yum …

day02_springboot综合案例

day02_springboot综合案例 订单操作 查询所有订单 查询所有订单流程 查询订单,要把订单对应的产品也要查出来 Orders实体类 Data public class Orders {private String id;private String orderNum;DateTimeFormat(pattern"yyyy-MM-dd HH:mm")privat…

IRQ和FIQ有什么区别,在CPU里面是怎么做的

IRQ(Interrupt Request)和 FIQ(Fast Interrupt Request)是 ARM 架构中用于处理中断的两种不同类型。 区别如下: 优先级:FIQ 具有更高的优先级,即当 FIQ 发生时,CPU 会在当前指令执行…