vue 使用 vue-pdf 報的錯


vue-pdf 是一個  預覽 pdf 文件的庫 ,他依賴 了  pdfjs-dist 這個庫 ,pdfjs-dist 是 moliza (火狐官方) 提供 的 基礎庫 

現在使用 vue-pdf 的時候 報錯 

ERROR Failed to compile with 3 errors 1:47:00 

These dependencies were not found:

* pdfjs-dist/es5/build/pdf.js in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
* worker-loader!pdfjs-dist/es5/build/pdf.worker.js in ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
* pdfjs-dist/es5/web/pdf_viewer in ./node_modules/vue-pdf/src/pdfjsWrapper.js

To install them, you can run: npm install --save pdfjs-dist/es5/build/pdf.js worker-loader!pdfjs-dist/es5/build/pdf.worker.js pdfjs-dist/es5/web/pdf_viewer

另一種報錯 

ERROR in ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'pdfjs-dist/es5/build/pdf.js' in 'D:\snabp\client\web\vue\modules\node_modules\vue-pdf\src'
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&) 9:13-51
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue
@ ./components/sm-file/sm-file-manage/src/component/SmFileDocumentView.jsx
@ ./components/sm-technology/sm-technology-components/src/SmTechnologyTimeLine.jsx
@ ./components/sm-d3/sm-d3-interface/SmD3Interface.jsx
@ ./components/sm-d3/sm-d3-interface/index.js
@ ./components/index.js
@ ./site/components.js
@ ./site/index.js
@ multi ./site/index.js
ERROR in ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&)
Module not found: Error: Can't resolve 'pdfjs-dist/es5/build/pdf.worker.js' in 'D:\snabp\client\web\vue\modules\node_modules\vue-pdf\src'
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js& (./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&) 13:20-79
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue
@ ./components/sm-file/sm-file-manage/src/component/SmFileDocumentView.jsx
@ ./components/sm-technology/sm-technology-components/src/SmTechnologyTimeLine.jsx
@ ./components/sm-d3/sm-d3-interface/SmD3Interface.jsx
@ ./components/sm-d3/sm-d3-interface/index.js
@ ./components/index.js
@ ./site/components.js
@ ./site/index.js
@ multi ./site/index.js

ERROR in ./node_modules/vue-pdf/src/pdfjsWrapper.js
Module not found: Error: Can't resolve 'pdfjs-dist/es5/web/pdf_viewer' in 'D:\snabp\client\web\vue\modules\node_modules\vue-pdf\src'
@ ./node_modules/vue-pdf/src/pdfjsWrapper.js 1:0-63 227:25-39
@ ./node_modules/vue-loader/lib??vue-loader-options!./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue?vue&type=script&lang=js&
@ ./node_modules/vue-pdf/src/vuePdfNoSss.vue
@ ./components/sm-file/sm-file-manage/src/component/SmFileDocumentView.jsx
@ ./components/sm-technology/sm-technology-components/src/SmTechnologyTimeLine.jsx
@ ./components/sm-d3/sm-d3-interface/SmD3Interface.jsx
@ ./components/sm-d3/sm-d3-interface/index.js
@ ./components/index.js
@ ./site/components.js
@ ./site/index.js
@ multi ./site/index.js

 

大概意思就是找不到  pdfjs-dist/es5/web/pdf_viewer (pdf-js-dist/es5 文件夾底下的文件)

打開 這個 node_modules\vue-pdf\src\vuePdfNoSss.vue 看一下 ,看到 確實是引用 了  ./pdfjsWrapper.js 和 pdfjs-dist/es5/build/pdf.js

 

 

  然后 打開 node_modules\pdfjs-dist\  查看 基礎庫 ,發現  里面並沒有 es5/build/pdf.js 這個文件(壓根就沒有es5文件夾)  

原來 是 最新 的 pdfjs-dist 這個基礎庫 把 es5 里面 的東西 全部 都放出來了 直接放到 pdfjs-dist 下的 根目錄下了 ,導致找不到 es5文件夾了(新版刪除了es5文件夾)

解決方法 就是

1 : 從 原來可以跑的node_modules 把 pdfjs-dist 拷過來一分,然后 重新  yarn serve 就能跑了

2. 將 vue-pdf 這個 依賴 降級 ,因為 vue-pdf 里面 的 package.json 依賴 了 pdfjs-dist ,所以 直接 在項目 里 yarn add pdfjs-dist 是  沒有用的 (vue-pdf 自己有package.json 引用 pdfjs-dist) ,所以只有 把 vue-pdf 的版本降了 ,他才會引用 低版本 的 pdfjs-dist ,從而 存在 es5文件夾 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM