最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue-pdf打包后無(wú)法預(yù)覽問(wèn)題及修復(fù)方式

 更新時(shí)間:2024年03月21日 14:37:19   作者:摳腳玥  
這篇文章主要介紹了vue-pdf打包后無(wú)法預(yù)覽問(wèn)題及修復(fù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

起因

早上上班同事跟我說(shuō)本地測(cè)試無(wú)誤提交到線上的pdf預(yù)覽下載功能在服務(wù)器上預(yù)覽白屏讓我看一下問(wèn)題。

捉蟲(chóng):找不同

開(kāi)始排查問(wèn)題,發(fā)現(xiàn)異常提示:

  • pro:

  • dev:

dev雖有報(bào)錯(cuò)但是正常顯示,無(wú)傷大雅,pro無(wú)報(bào)錯(cuò)但是顯示失敗

1.路徑問(wèn)題?

  • 開(kāi)始面向百度編程:發(fā)現(xiàn)網(wǎng)上有人有過(guò)打包后預(yù)覽失敗問(wèn)題,是因?yàn)閣orker.js路徑問(wèn)題。
  • 但是區(qū)別是會(huì)有個(gè)404的報(bào)錯(cuò),這邊先不管試了再說(shuō),發(fā)現(xiàn)失敗。

2.不起眼的報(bào)錯(cuò)

  • 搜了百度、google,都沒(méi)發(fā)現(xiàn)其他相關(guān)的解決方案,看來(lái)只能靠自己了。
  • 首先從不起眼的warning開(kāi)始找起。 

Warning: DocException - expected a valid Error.

然后打印了一下src的值,發(fā)現(xiàn)一個(gè)有意思的東西

pendingOperation = pendingOperation.then(function() {
 		var loadingTask;
 		if ( isPDFDocumentLoadingTask(src) ) {

 			if ( src.destroyed ) {

 				emitEvent('error', new Error('loadingTask has been destroyed'));
 				return
 			}

 			loadingTask = src;
 		} else {

 			loadingTask = createLoadingTask(src, {
 				onPassword: function(updatePassword, reason) {

 					var reasonStr;
 					switch (reason) {
 						case PDFJS.PasswordResponses.NEED_PASSWORD:
 							reasonStr = 'NEED_PASSWORD';
 							break;
 						case PDFJS.PasswordResponses.INCORRECT_PASSWORD:
 							reasonStr = 'INCORRECT_PASSWORD';
 							break;
 					}
 					emitEvent('password', updatePassword, reasonStr);
 				},
 				onProgress: function(status) {

 					var ratio = status.loaded / status.total;
 					emitEvent('progress', Math.min(ratio, 1));
 				}
 			});
 		}
 		console.log(loadingTask)
 		return loadingTask.promise;
 	})
 	.then(function(pdf) {

 		pdfDoc = pdf;
 		emitEvent('num-pages', pdf.numPages);
 		emitEvent('loaded');
 	})
 	.catch(function(err) {
 		console.log(err)
 		clearCanvas();
 		clearAnnotations();
 		emitEvent('error', err);
 	})
  • pro:

  • dev:

既然走到rejected里了,那就看看報(bào)錯(cuò)提示,剛好有打印

WTF?!線索到這里就斷了。

但是,有一個(gè)忽略的細(xì)節(jié),沒(méi)錯(cuò),那個(gè)warning,通常warning都不算錯(cuò),基本都是選擇性忽略,這次沒(méi)有任何問(wèn)題只能取看看這個(gè)了。

首先全局搜索,發(fā)現(xiàn)報(bào)錯(cuò)提示在這:

pdfjs-dist>es5>build>pdf.js 14109

然后發(fā)現(xiàn)reason為undefined,打印ex

報(bào)錯(cuò)信息:

“Failed to set the ‘responseType’ property on ‘XMLHttpRequest’: The response type cannot be changed for synchronous requests made from a document.”

一番找,終于把真實(shí)的報(bào)錯(cuò)信息找到了真實(shí)的報(bào)錯(cuò)信息【枚舉報(bào)錯(cuò)信息居然沒(méi)做兜底!】

接下來(lái)就簡(jiǎn)單了,找到出問(wèn)題的地方:

pdfjs-dist>es5>build>pdf.js 25685

xhr.open("GET", this.url);     
xhr.open("GET", this.url,true);

加上true即可

再進(jìn)行測(cè)試,pro版本和dev版本一致了成功預(yù)覽

修復(fù)bug

既然問(wèn)題找到了,修改后測(cè)試無(wú)誤,那就使用npx打個(gè)補(bǔ)丁

npx patch-package pdfjs-dist

執(zhí)行完成會(huì)生成一個(gè)patches文件夾,里面有個(gè)這樣的文件。

最后在 package.json 的 scripts 中加入

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

總結(jié)

搞定!

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 前端使用vue實(shí)現(xiàn)token無(wú)感刷新的三種方案解析

    前端使用vue實(shí)現(xiàn)token無(wú)感刷新的三種方案解析

    這篇文章主要為大家介紹了前端使用vue實(shí)現(xiàn)token無(wú)感刷新的三種方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • vue3中項(xiàng)目?jī)?yōu)化方法詳解(Web?Worker的使用)

    vue3中項(xiàng)目?jī)?yōu)化方法詳解(Web?Worker的使用)

    最近在做vue3的項(xiàng)目中,遇到了計(jì)算量龐大導(dǎo)致頁(yè)面響應(yīng)緩慢的問(wèn)題,所以下面這篇文章主要給大家介紹了關(guān)于vue3中項(xiàng)目?jī)?yōu)化方法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • vue3打包h5平板每次都要清緩存的問(wèn)題及解決

    vue3打包h5平板每次都要清緩存的問(wèn)題及解決

    這篇文章主要介紹了vue3打包h5平板每次都要清緩存的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-09-09
  • 在antd4.0中Form使用initialValue操作

    在antd4.0中Form使用initialValue操作

    這篇文章主要介紹了在antd4.0中Form使用initialValue操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue+element樹(shù)形選擇器組件封裝和使用方式

    vue+element樹(shù)形選擇器組件封裝和使用方式

    這篇文章主要介紹了vue+element樹(shù)形選擇器組件封裝和使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2020-04-04
  • vue2.0多條件搜索組件使用詳解

    vue2.0多條件搜索組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了vue2.0多條件搜索組件的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Vue計(jì)算屬性與監(jiān)視屬性實(shí)現(xiàn)方法詳解

    Vue計(jì)算屬性與監(jiān)視屬性實(shí)現(xiàn)方法詳解

    最近在學(xué)習(xí)vue,學(xué)習(xí)中遇到了一些感覺(jué)挺重要的知識(shí)點(diǎn),感覺(jué)有必要整理下來(lái),這篇文章主要給大家介紹了關(guān)于Vue.js中計(jì)算屬性、監(jiān)視屬性的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • vue3項(xiàng)目中ESLint配置和使用

    vue3項(xiàng)目中ESLint配置和使用

    在用vite創(chuàng)建vue3項(xiàng)目時(shí)已經(jīng)選擇了添加ESLint,本文就來(lái)介紹一下ESLint在項(xiàng)目中需要怎樣配置和使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Vue 實(shí)現(xiàn)從小到大的橫向滑動(dòng)效果詳解

    Vue 實(shí)現(xiàn)從小到大的橫向滑動(dòng)效果詳解

    這篇文章主要介紹了Vue 實(shí)現(xiàn)從小到大的橫向滑動(dòng)效果,結(jié)合實(shí)例形式詳細(xì)分析了vue.js橫向漸變滑動(dòng)效果的實(shí)現(xiàn)步驟、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼

    vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue項(xiàng)目中在可編輯div光標(biāo)位置插入內(nèi)容的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01

最新評(píng)論

宣威市| 昌宁县| 苏尼特右旗| 湘潭县| 边坝县| 徐水县| 格尔木市| 天津市| 香港 | 博乐市| 佳木斯市| 青州市| 大港区| 色达县| 绍兴县| 桐庐县| 博乐市| 永安市| 津南区| 安义县| 开江县| 故城县| 成都市| 治多县| 永平县| 高安市| 通辽市| 湛江市| 阜新| 阜宁县| 曲麻莱县| 绥棱县| 黄石市| 铜梁县| 合水县| 阜新市| 福州市| 嵊州市| 开化县| 漳州市| 肇州县|