vue-pdf問題解決及patch-package簡(jiǎn)介

問題背景

vue中使用vue-pdf打包之后預(yù)覽報(bào)錯(cuò)hash+worker.js路徑不對(duì)404

解決方式

修改node_modules依賴并安裝patch-package,將生成的補(bǔ)丁包提交到gitlab,發(fā)版時(shí)需全量發(fā)版

具體步驟

1、進(jìn)入目錄 node_modules/vue-pdf/node_modules/worker-loader/dist/index.js 找到

const filename = _loaderUtils2.default.interpolateName(this, options.name || '[hash].worker.js', {}

2、修改為

const filename = _loaderUtils2.default.interpolateName(this, options.name || 'static/js/[hash].worker.js', {}

3、安裝patch-package

npm i patch-package --save-dev

4、創(chuàng)建補(bǔ)丁

npx patch-package vue-pdf/worker-loader 運(yùn)行后會(huì)在項(xiàng)目根目錄下的patches目錄中創(chuàng)建一個(gè)名為worker-loader+2.0.0.patch的文件。將該patch文件提交后,即可在之后應(yīng)用該補(bǔ)丁了。

5、在 package.json 的 scripts 中加入

"scripts": {
 "postinstall": "patch-package"
}

后續(xù)執(zhí)行 npm install 或 yarn install 命令時(shí),會(huì)自動(dòng)為依賴包打補(bǔ)丁了

patch-package?使用指南

安裝

1、patch-package包可以通過npm進(jìn)行安裝。

npm i patch-package --save-dev

2、通過yarn進(jìn)行安裝。

yarn add --dev patch-package postinstall-postinstall

創(chuàng)建補(bǔ)丁

npx patch-package name

  • name表示被修改的依賴包的名稱

  • 在修改依賴包內(nèi)容后,就可以運(yùn)行patch-package創(chuàng)建patch文件了。

  • 運(yùn)行后通常會(huì)在項(xiàng)目根目錄下的patches目錄中創(chuàng)建一個(gè)名為package-name+version.patch的文件。將該patch文件提交至版本控制中,即可在之后應(yīng)用該補(bǔ)丁了。

[圖片上傳失敗...(image-470d5b-1631522498161)]

添加指令

在 package.json 的 scripts 中加入 "postinstall": "patch-package",后續(xù)執(zhí)行 npm install 或 yarn install 命令時(shí),會(huì)自動(dòng)為依賴包打補(bǔ)丁了

"scripts": {
 "postinstall": "patch-package"
}</pre>
  • 每次修改node_moudle時(shí)都需要執(zhí)行npx patch-package name一次,并提交到對(duì)應(yīng)分支

  • 在Jenkins發(fā)版時(shí),為防止不能執(zhí)行新提交的補(bǔ)丁包,建議選擇全量進(jìn)行發(fā)版

  • 要修改的依賴包版本最好是固定的,即不會(huì)自動(dòng)升級(jí)版本,這樣可以避免自動(dòng)升級(jí)后導(dǎo)致補(bǔ)丁包失效,從而打包失敗影響原有功能

image.png

引用鏈接

1、vue-pdf插件文檔

http://www.itdecent.cn/p/d126ca551e1b

2、patch-package文檔

https://www.npmjs.com/package/patch-package

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容