κ΅¬μ± :
λ¬Έμ λ₯Ό μ¬ννλ λ¨κ³ :
λ΄ μ½λλ λ€μκ³Ό κ°μ΅λλ€.
import pdflib from 'pdfjs-dist'
pdflib.PDFJS.workerSrc = './node_modules/pdfjs-dist/build/pdf.worker.entry.js'
https://github.com/mozilla/pdf.js/wiki/Setup-pdf.js-in-a-website#with -webpackμ μ€λͺ
λλλ‘ μ νν
κ·Έλ¬λ μ€μ λ‘ λ¬Έμλ₯Όλ‘λ ν λ μ½μμ Warning: Setting up fake worker.'
λμ΄ μ§μΉ¨μ΄ μλνμ§ μλ κ²μ²λΌ 보μ
λλ€.
λν "PDFJS.workerSrc _shall_μ΄ νμΌμ κ°λ¦¬ ν€λλ‘ μ€μ λ¨"(νμ¬ λ¬Έκ΅¬)μ΄ μλμΌλ‘ μ€μ λ¨μ μλ―Ένκ³ "PDFJS.workerSrc _should_κ°μ΄ νμΌμ κ°λ¦¬ ν€λλ‘ μ€μ λ¨"μ μ§μ μ€μ νμμμ€.
μμ μ½λ λ PDFJSλ₯Ό κ°μ Έ μ€λ μ¬λμ΄ μν ν μμλ μ μ₯μ ( pdfjsLib.PDFJS.workerSrc = '../../build/webpack/pdf.worker.bundle.js';
)μ λν μλ κ²½λ‘λ₯Ό μ¬μ©νλ―λ‘ κ·Έλ€μ§ λμμ΄λμ§ μμ΅λλ€.
μμ
μ μ€ν¬λ¦½νΈλ₯Ό μλμΌλ‘λ‘λνλ https://github.com/mozilla/pdf.js/pull/6595 μ κ°μ 1 λ
λ―Έλ§μ λ¬Έμ / PRμ κ²μ ν λ νΌλ μ€λ½μ§λ§ ν΄λΉ μ½λλ κ·Έλμ workerSrc
μ€μ νκ³ μ€μ νμ§ μμΌλ©΄ κ°μ§ μμ
μκ°λ‘λλ©λλ€. κ°μ§ μμ
μλ webpackμμ λΉλ ν μμ
μ μ€ν¬λ¦½νΈλ₯Ό μ°Ύμ μμλ μμΉλ₯Ό μκ³ μμ΅λλ€ (μ : 1.bundle.js
λ μμ
μμ΄κ³ bundle.js
κ° μ€ν¬λ¦½νΈ)μ΄λ―λ‘ μ€μ μμ
μκ°μ΄ λ
Όλ¦¬λ μ¬μ©ν μμλ μ΄μ κ° νΌλ μ€λ½μ΅λλ€.
workerSrc
μμ μμ± λ 1.bundle.js
νμΌμ κ°λ¦¬ν€κ³ μ¬μ§μ΄ webpackμ μμ
μ λ‘λ λ₯Ό μ¬μ©νμ¬ PDFWorker
( pdflib.PDFJS.PDFWorker = require('worker!pdfjs-dist/build/pdf.worker.entry.js')
)λ₯Ό μΈμ€ν΄μ€ννκ³ λ체νλ €κ³ μλνμ§λ§ κ·Έλ μ§ μμμ΅λλ€. μλνμ§ μμΌλ―λ‘ μμ
μκ° webpackμ μ¬μ©νλ λ°©λ²μ λν΄ μμ ν μμ΄ λ²λ Έμ΄μ.
κ°μ§ μμ μλ webpackμμ λΉλ ν μμ μ μ€ν¬λ¦½νΈλ₯Ό μ°Ύμ μμλ μμΉλ₯Ό μκ³ μμ΅λλ€ (μ : bundle.jsκ° μ€ν¬λ¦½νΈ μΌ λ 1.bundle.jsλ μμ μμ λλ€). κ·Έλμ μ€μ μμ μκ°μ΄ λ Όλ¦¬λ₯Ό μ¬μ©ν μμλ μ΄μ κ° ν·κ°λ¦½λλ€.
bundle.jsμ μμ μκ° ν¬ν¨λμ΄ μλμ§ νμΈνμμμ€. (νμ΄μ§ λ‘λ© μ±λ₯ λ° ν¬κΈ°λ‘ μΈν΄) κ±°κΈ°μμλ κ²μ΄ μλͺ»λμμ΅λλ€. μ 체 pdf.worker.js νμΌμ λ³λμ λ²λ€μ λ°°μΉλ©λλ€.
μμ μ½λλ μ¬λμ΄ κ°μ Έ μ€λ μ μ₯μ (pdfjsLib.PDFJS.workerSrc = '../../build/webpack/pdf.worker.bundle.js';)μ λν μλ κ²½λ‘λ₯Ό μ¬μ©νκΈ° λλ¬Έμ κ·Έλ€μ§ λμμ΄λμ§ μμ΅λλ€. PDFJSλ λΆλͺ ν ν μ μμ κ²μ λλ€ (λ§€μ° μ μ©ν μλ μλλλ€).
pdf.worker.js λͺ¨λμ ν¬ν¨νλ λ²λ€ μΆλ ₯μΌλ‘ μμ± ν pdf.worker.bundle.js νμΌ (pdfjs-distμμ κ°μ Έμ΄)
λ¬Έμ μ λν μ€λͺ μ΄ λͺ ννμ§ μμ΅λλ€. μμ ν μμ μμ€ μ½λλ₯Ό μ 곡 ν μ μμ΅λκΉ?
bundle.jsμ μμ μκ° ν¬ν¨λμ΄ μλμ§ νμΈνμμμ€. (νμ΄μ§ λ‘λ© μ±λ₯ λ° ν¬κΈ°λ‘ μΈν΄) κ±°κΈ°μμλ κ²μ΄ μλͺ»λμμ΅λλ€. μ 체 pdf.worker.js νμΌμ λ³λμ λ²λ€μ λ°°μΉλ©λλ€.
λλ΄ λ μ½λλ₯Ό νμΈνκ³ μμ
μκ° ν¬ν¨λμ΄ μμ§ μμμ νμΈν μ μμ΅λλ€. μμ μΈκΈνλ―μ΄ μμ
μ μ€ν¬λ¦½νΈλ 1.bundle.js
λ²λ€λ‘ μ 곡λ©λλ€. PDFλ₯Όλ‘λ ν λ 1.bundle.js
λν μ€ν¬λ¦½νΈ νκ·Έκ° λ΄ <head>
νκ·Έμ μ½μ
λ©λλ€ (PDFJS λλ μΉν©μμ κ°μ Έμ¨ κ²μΈμ§ νμ€νμ§ μμ).
pdf.worker.js λͺ¨λμ ν¬ν¨νλ λ²λ€ μΆλ ₯μΌλ‘ μμ± ν pdf.worker.bundle.js νμΌ (pdfjs-distμμ κ°μ Έμ΄)
node_modules
μμ μμ
μ μ€ν¬λ¦½νΈλ₯Όλ‘λνλ Wikiμ 첫 λ²μ§Έ λ°©λ²μ΄λ©° μ νΈνλ λ°©λ²μ μ¬μ©νλ μμ κ° μμ΅λκΉ? μν€ μΉμ
μμ : "μμ
μλ λ³λμ λ²λ€λ‘ λΉλλ©λλ€."./node_modules/pdfjs-dist/build/pdf.worker.entry.js "νμΌ κ°μ Έ μ€κΈ°"
@yurydelendik λ μ΄μ μ½λλ² μ΄μ€μμλ κ²μ²λΌ 보μ΄λ # 6595μμ μμ μμ μλ κ°μ§ /λ‘λμ λν΄ μμΈν
λ¬Έμ μ λν μ€λͺ μ΄ λͺ ννμ§ μμ΅λλ€. μμ ν μμ μμ€ μ½λλ₯Ό μ 곡 ν μ μμ΅λκΉ?
λμμ΄λκ±°λ κ΄λ ¨μ±μ΄λ³λ‘ μκΈ° λλ¬Έμ μμ€ μ½λλ₯Ό 첨λΆνμ§ μμμ§λ§ μ¬κΈ°μ 50 μ€ μμ½μ΄ μμ΅λλ€. http://pastebin.com/raw/PHs6bfby. file
μΈμλ λ§ κ·Έλλ‘ <input type='file' />
μμμ νμΌμ
λλ€.
@yurydelendik λ μ΄μ μ½λλ² μ΄μ€μμλ κ²μ²λΌ 보μ΄λ # 6595μμ μμ μμ μλ κ°μ§ /λ‘λμ λν΄ μμΈν
μ΄ κΈ°λ₯μ λ² λ€λ¬ / ν¨ν€μ μ©μ΄ μλλλ€.
pdf.jsλ₯Ό μ¬μ©νλ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ΅¬μΆ μ€μ΄λ―λ‘ λκ΅°κ°κ° λ΄ λΌμ΄λΈλ¬λ¦¬λ₯Ό μλμν€κΈ° μν΄ pdf.js μ½λλ₯Ό κ°μ ΈμμΌνλ€λ©΄ μ½κ° μ± κ°μ€ κ²μ λλ€ (μ’ μμ± μ’ μμ± κ΄λ¦¬).
μ§κΈκΉμ§ μ°λ¦¬λ μΉ μμ μλ₯Ό μ μ νκ² κ΄λ¦¬νλ λ² λ€λ¬λ₯Ό μ°Ύμ§ λͺ»νκ³ μΉν©μ΄λ λΈλΌμ°μ νμ λν μ νΈλλ₯Ό λΆμ¬νκ³ μΆμ§ μμ΅λλ€. λμμ λ λ€ μ§μνλ λ° λ¬Έμ κ°μμμ΅λλ€.
ν΄κ²°μ± μ μ’ μμ±μ μ’ μμ±μ κ΄λ¦¬νλ κ²μ΄ κ°λ¨νμ§ μμ κ²μ λλ€. κ·Έλ¬λ PDFμ ν¨μ¨μ μΈ κ΅¬λ¬Έ λΆμ λ° λ λλ§μ κ°λ¨ν μμ μ΄ μλλλ€. μΉ μ컀 μ¬μ©μ ν¬κΈ°νκ³ μμ λ‘κ² ν μ μλ€λ©΄ UI μ±λ₯μ΄ μ νλκ³ νΈλ μ΄λ μ€νκ° λ κ²μ λλ€.
μ μ©νκ±°λ κ΄λ ¨μ±μ΄λ³λ‘ μκΈ° λλ¬Έμ μμ€ μ½λλ₯Ό 첨λΆνμ§ μμμ΅λλ€.
λ¬μ±νλ €λ μλλ₯Ό 보μ¬μ£Όλ λΌμ΄λΈλ¬λ¦¬μ μμ μλ₯Ό κ²μ ν μ μμ΅λλ€. μ 곡λ μ½λ μ€ λν«μ μ μ©νμ§ μμ΅λλ€. μ€ν κ°λ₯νμ§ μκ³ μννλ €λ μμ μ΄ μλ λΌμ΄λΈλ¬λ¦¬μ λλ€.
λμΌν λ¬Έμ κ° λ°μν©λλ€. https://cdn.kidoju.com/support/viewer/index.htmlμ μ°Έμ‘°
μ½λλ https://github.com/kidoju/Kidoju-Help μμ μ°Ύμ μ μμ΅λλ€ build
cmd νμΌμ μ¬μ©ν©λλ€.
https://github.com/kidoju/Kidoju-Help/issues/2λ₯Ό μ°Έμ‘°
μ΄ κΈ°λ₯μ λ² λ€λ¬ / ν¨ν€μ μ©μ΄ μλλλ€.
λͺ°λμ΄μ π
μ§κΈκΉμ§ μ°λ¦¬λ μΉ μμ μλ₯Ό μ μ νκ² κ΄λ¦¬νλ λ² λ€λ¬λ₯Ό μ°Ύμ§ λͺ»νκ³ μΉν©μ΄λ λΈλΌμ°μ νμ λν μ νΈλλ₯Ό λΆμ¬νκ³ μΆμ§ μμ΅λλ€. λμμ λ λ€ μ§μνλ λ° λ¬Έμ κ°μμμ΅λλ€.
ν΄κ²°μ± μ μ’ μμ±μ μ’ μμ±μ κ΄λ¦¬νλ κ²μ΄ κ°λ¨νμ§ μμ κ²μ λλ€. κ·Έλ¬λ PDFμ ν¨μ¨μ μΈ κ΅¬λ¬Έ λΆμ λ° λ λλ§μ κ°λ¨ν μμ μ΄ μλλλ€. μΉ μ컀 μ¬μ©μ ν¬κΈ°νκ³ μμ λ‘κ² ν μ μλ€λ©΄ UI μ±λ₯μ΄ μ νλκ³ νΈλ μ΄λ μ€νκ° λ κ²μ λλ€.
@yurydelendik λλ λΉμ κ³Ό λμνμ§λ§ κ·Έ μ μΆ©μμ΄ λ§λ€μ΄ μ§ νμκ° μλ€κ³ μκ°ν©λλ€. μΉν©μμ΄ λ Έλμ λ‘λ λ° Browserifyλμ΄ webworkifyμ΄ - λ€λ¬ μμ€ν μ κ°μ§νκ³ νλλ₯Ό μ¬μ©νκ±°λ, λ€λ₯Έ νλλμ΄ λ¬Έμ λ₯Ό μμ ν ν΄κ²°νμ§ μμκΉμ?
μ¬κΈ°μμ ν μμλ κ²μ²λΌ 보μ
λλ€ : https://github.com/mozilla/pdf.js/blob/master/src/display/api.js#L1132 , μμ
μ νλͺ©μ λν μ§μ κ²½λ‘λ₯Ό μ¬μ©νμ¬
μΉν©μ var worker = require('worker!../pdf.worker.entry.js')
λλ
Browserifyμμ var worker = require('webworkerify')('../pdf.worker.entry.js')
.
λ΄κ° κ·Έκ²μΌλ‘ λ§ν¬λ₯Ό μ³€λ€κ³ μκ°νλ€λ©΄, λλ κ·Έκ²μ λν PRμ μμ±νκ²λμ΄ κΈ°μ©λλ€.
λ¬μ±νλ €λ μλλ₯Ό 보μ¬μ£Όλ λΌμ΄λΈλ¬λ¦¬μ μμ μλ₯Ό κ²μ ν μ μμ΅λλ€. μ 곡λ μ½λ μ€ λν«μ μ μ©νμ§ μμ΅λλ€. μ€ν κ°λ₯νμ§ μκ³ μννλ €λ μμ μ΄ μλ λΌμ΄λΈλ¬λ¦¬μ λλ€.
λ΄κ° μ²¨λΆ ν μ€ λν«μ νμ¬ λΌμ΄λΈλ¬λ¦¬μμλ λͺ¨λ μ½λμ
λλ€ ( pdf-to-dataURL
). @jlchereau μ μμ κ° μΆ©λΆνμ§ μμ κ²½μ° ν΄λΉ μ€ λν«μ μ¬μ©νλ λΉ λ₯Έ μμ λ₯Ό λ§λ€ μ μμ΅λλ€ (NPMμμ pdfjs-dist
λ₯Ό μꡬνμ§ μλ κ² κ°μΌλ―λ‘ μ νμ±μ λν΄ νμ νμ§ λͺ»ν¨)
Webpackμλ μμ μ λ‘λκ° μκ³ Browserifyμλ webworkerifyκ° μμ΅λλ€. λ² λ€λ¬ μμ€ν μ κ°μ§νμ§ λͺ»νκ³ λ μ€ νλλ₯Ό μ¬μ©νλ©΄μ΄ λ¬Έμ κ° μμ ν ν΄κ²°λ©λκΉ?
μ, # 6785μμ μλνκ³ λμ€μ # 6791μμ μλν λ€μ λλ λ Έμ΅λλ€. require('worker!...
μμΌλ©΄ browserifyμμ λ¬Έμ κ° λ°μνκ³ require('webworkerify')(...)
κ° webpackμμ λ°μν©λλ€.
λ΄κ° κ·Έκ²μΌλ‘ λ§ν¬λ₯Ό μ³€λ€κ³ μκ°νλ€λ©΄, λλ κ·Έκ²μ λν PRμ μμ±νκ²λμ΄ κΈ°μ©λλ€.
μ, μΌνλ PRμ΄ μμΌλ©΄ μ λ§ μ’μ΅λλ€. μ§κΈκΉμ§ pdfjs-distλ μ΄λ»κ² λ webpackκ³Ό ν¨κ» μλνκ³ , system.js λ° node.jsμ ν¨κ» λΈλΌμ°μ νλ©λλ€. κ·Έλ¦¬κ³ μ°λ¦¬λ κ·Έκ²μ μ΄λ κ² μ μ§νλ €κ³ λ Έλ ₯ν κ²μ λλ€. κ°μ¬.
λν μ΄λ€ μ΄μ λ‘ μμ μλ₯Ό μ¬μ©ν μμλ κ²½μ° (보μ λλ λ κ±°μ λΈλΌμ°μ ) μ½λλ₯Ό μ€ν¬λ¦½νΈ νκ·Έλ‘λ‘λν΄μΌν©λλ€. μΉ μμ μλ₯Ό λ§€κ° λ³μλ‘ λ°μλ€μ΄λ PDFWorkerμ μ€λ²λ‘λ λ μμ±μλ₯Ό μΆκ° ν κ³νμ΄μμ΅λλ€. μ΄κ²μ μΌλΆ webpack / browserify μ¬μ© μ¬λ‘μ λν λ체 μ루μ μ μ 곡 ν μ μμ΅λλ€.
btw, webpackμλ workerSrcμ ν¨κ» μ¬μ©ν μμλ μνΈλ¦¬ λ‘λκ° μμ΅λλ€.
μ, # 6785μμ μλνκ³ λμ€μ # 6791μμ μλν λ€μ λλ λ Έμ΅λλ€. require ( 'worker! ...λ browserifyμμ λ¬Έμ λ₯Ό μΌμΌν€κ³ , require ('webworkerify ') (...)λ webpackμμ λ°μν©λλ€.
νμ§λ§ __webpack_require__
μ¬κΈ°μμ νμΈνμ§ μκ² μ΅λκΉ?
https://github.com/mozilla/pdf.js/pull/6785/commits/79c2f69c3288494c5ce2809182c896484bf4be5c#diff -5f93a8d6c23cf0a169c6ee7347477ce8R30μ browserifyκ° ν΄λΉ λ¬Έμ ꡬ문 λΆμνμ§ λͺ»νλλ‘ μ°¨λ¨ν©λκΉ? ( ensure
λΆλΆμ΄ λ¬Έμ λ₯Ό μΌμΌν€λ μ§ νμ€νμ§ μμ)
μ, μΌνλ PRμ΄ μμΌλ©΄ μ λ§ μ’μ΅λλ€. μ§κΈκΉμ§ pdfjs-distλ μ΄λ»κ² λ webpackκ³Ό ν¨κ» μλνκ³ , system.js λ° node.jsμ ν¨κ» λΈλΌμ°μ νλ©λλ€. κ·Έλ¦¬κ³ μ°λ¦¬λ κ·Έκ²μ μ΄λ κ² μ μ§νλ €κ³ λ Έλ ₯ν κ²μ λλ€. κ°μ¬.
λ€μ μ£Ό νλ°μμ΄ λ΄μ©μ λν΄ μ€λͺ ν κ²μ λλ€. λ€μν λ² λ€λ¬ / νλ«νΌμ νμΈνκΈ° μν΄ μ€νν ν μ€νΈκ° μμ΅λκΉ?
μΉ μμ μλ₯Ό λ§€κ° λ³μλ‘ λ°μλ€μ΄λ PDFWorkerμ μ€λ²λ‘λ λ μμ±μλ₯Ό μΆκ° ν κ³νμ΄μμ΅λλ€. μ΄κ²μ μΌλΆ webpack / browserify μ¬μ© μ¬λ‘μ λν λ체 μ루μ μ μ 곡 ν μ μμ΅λλ€.
λλ μ΄κ²μ΄ νμμ μΈ λμμ΄ λ κ²μ΄λΌκ³ μκ°ν©λλ€! νΉν Worker
ν΄λμ€λ₯Ό λ°μ λ€μΌ μ μλ€λ©΄ webpack μ¬λλ€μ λ€μκ³Ό κ°μ κ²μ μ¬μ©ν μ μμ΅λλ€ : webworkify-webpack λ° webworkifyλ₯Ό μ¬μ©νκ³ loader / Workerλ₯Ό μΈμλ‘ μ λ¬ν©λλ€. κ·Έλμ κ·Έκ²μ
μ€λ²λ‘λ λ κ²½μ° var worker = new WorkerFromArgs('../pdf.worker.entry.js')
.
μ΄κ²μ μμ
μ λ‘λ λ‘μ§μ ꡬμ±μ μ¬μ©μ μμμΌλ‘ μ€νλ‘λνλ―λ‘ νλ«νΌ / λ² λ€λ¬λ₯Ό pdf.jsλ‘ νμΈνλ μ μ¬μ μΌλ‘ μ§μ λΆν PRμ΄ νμνμ§ μμ΅λλ€ (μ΄μ¨λ μ μ ν λ‘λλ₯Ό μ€μΉνλ κ²μ μ¬μ©μμκ² μμ΅λλ€).
κ·Έλ¬λ κ²½κ³ : κ°μ§ μμ μ μ€μ . ' μ€μ λ‘ λ¬Έμλ₯Όλ‘λ ν λ μ½μμμ μ§μΉ¨μ΄ μλνμ§ μλ κ²μ²λΌ 보μ λλ€.
νλ₯νμ§λ§ μμμ μΈκΈνλ―μ΄ μμ ν μμ μμ΄λ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ΅λλ€. μ΄κ±Έ λ«κ³ PRμ κΈ°λ€λ¦΄κΉμ?
@jlchereau λ https://github.com/mozilla/pdf.js/issues/7612#issuecomment -245973303 νλμ μλ₯Ό μ 곡νμ΅λλ€. μ½μμμ Warning: Setting up fake worker
λ₯Ό λΉμ·νκ² λ³Ό μ μκ³ νμν κ²½μ° λ€λ₯Έ κ²μ μ€ μ μμ΅λλ€.
μ΄ λ¬Έμ λ workerSrc
μ΄ νμ¬ κ΅¬νμμ μλνμ§λ§ μλνμ§ μκΈ° λλ¬Έμ μ¬μ ν κ΄λ ¨μ΄ μμ΅λλ€.
μ΄μ¨λ PRμμ΄ λ¬Έμ λ₯Ό ν΄κ²°ν κ²μ΄λ―λ‘ κ·ΈλκΉμ§ μΆμ μ μν΄ μ΄μ΄λλ©΄ μλ©λκΉ?
PRμ μμνκΈ° μ μ μμ μ§λ¬Έμ λν κ·νμ νΌλλ°±μ λ£κ³ μΆμ΅λλ€ ( __webpack_require__
νμΈνλ €κ³ ν λ browserifyκ° λΆλ§μ μ κΈ° ν μ΄μ μ κ΄ν΄μλ PRμμλ λκ°μ΄ ν κ²μ
λλ€. λͺ¨λ λ² λ€λ¬ / νλ«νΌμ λμμ ν
μ€νΈνκΈ° μν΄ μ€ν)
@ agilgur5 , λΉμ μ λ§ν©λλ€ :
The snippet I attached is all of the code that would be in the library for now (pdf-to-dataURL).
I could make a quick example that uses that snippet if <strong i="7">@jlchereau</strong>'s example isn't good enough
(it doesn't seem to require pdfjs-dist from NPM, so not sure about the accuracy of it).
https://github.com/kidoju/Kidoju-Help/blob/master/src/main.js λ₯Ό μ°Έμ‘°νκ³ μ μ νλ€κ³ μκ°λλ©΄ μ£Όμμ μ κ±°νμμμ€.
require('../web/viewer.css');
require('../web/compatibility.js');
// require('pdfjs-dist/web/compatibility.js');
require('../web/l10n.js');
window.pdfjsDistBuildPdf = require('../build/pdf.js');
// window.pdfjsDistBuildPdf = require('pdfjs-dist/build/pdf.js');
// require('../web/debugger.js');
require('./viewer.js');
λ΄κ° λ λ€ μλν μ΄μ λ https://github.com/mozilla/pdf.js/blob/master/web/viewer.js λ° https://github.com/mozilla/pdfjs-dist/blob/master/ web / pdf_viewer.js λ λμΌνμ§ μμΌλ©° λμΌν μμ€ / λ²μ μ λͺ¨λ νμΌμ μ μ§νλ λ° λ κ΄λ ¨μ±μ΄ μλ€κ³ μκ°ν©λλ€.
μ΄μ¨λ , λ λ€ λ Έλμμ κ΄ν ν λμΌν νλμ 보μ λλ€.
@yurydelendik μμ§ @jlchereau μ μλ₯Ό νμΈνμ§ μμ κ² κ°μ΅λλ€. λν pdf-to-dataURLμμ΄ λ²κ·Έλ₯Ό λνλ΄λ μμ ν¨ν€μ§λ‘ λ§λ€μμ΅λλ€.
μΉ μμ μλ₯Ό λ§€κ° λ³μλ‘ λ°μλ€μ΄λ PDFWorkerμ μ€λ²λ‘λ λ μμ±μλ₯Ό μΆκ° ν κ³νμ΄μμ΅λλ€. μ΄κ²μ μΌλΆ webpack / browserify μ¬μ© μ¬λ‘μ λν λ체 μ루μ μ μ 곡 ν μ μμ΅λλ€.
μ΄κ²μ λν μ λ°μ΄νΈκ° μμ΅λκΉ? μ΄μ μ μΈκΈνλ―μ΄ μ΄κ²μ΄ μ κ° μ μν κ²λ³΄λ€ ν¨μ¬ λ λμ μ루μ μ΄λΌκ³ μκ°ν©λλ€ (μ κ° μ§λ¬Έμ λ΅νμ§ μμκΈ° λλ¬Έμ μ΄μ¨λ μ€μ λ‘ PRμ λ§λ€ μ μμμ΅λλ€). λ€λ₯Έ λ² λ€λ¬.
λ΄ μΉν© νλ‘μ νΈμμ λμΌν λ¬Έμ κ° λ°μνμ§λ§ λ€λ₯΄κ² ν΄κ²°νμ΅λλ€. webpackμ λ²λ€λ§ λλ λ‘λμ μμ‘΄νλ λμ CopyWebpackPlugin μ μ¬μ©νμ¬ μμ μ μμ€λ₯Ό λ΄ λΉλ λλ ν 리μ 볡μ¬νμ΅λλ€.
λ΄ λ·°μ΄μμ :
import pdfjsLib from 'pdfjs-dist';
if (process.env.NODE_ENV !== 'production') {
//in dev, get it from the node_modules directory
//NOTE: don't use the "entry" file -- the script will fail and the web worker will not be used
pdfjsLib.PDFJS.workerSrc = `${process.env.APP_ROOT}/node_modules/pdfjs-dist/build/pdf.worker.js`;
} else {
//in prod, get it from the build directory
pdfjsLib.PDFJS.workerSrc = `${process.env.APP_ROOT}/build/pdf.worker.js`;
}
webpack.config.js
:
const CopyWebpackPlugin = require('copy-webpack-plugin');
return {
//... rest of config omitted
plugins: [{
new CopyWebpackPlugin([{
from: 'node_modules/pdfjs-dist/build/pdf.worker.js',
to: 'pdf.worker.js'
}])
}]
}
@ agilgur5 , λ°©κΈμ΄ λ¬Έμ κ° λ°μνμΌλ©° CommonsChunkPluginμ μ¬μ©νκΈ° λλ¬Έμ
λλ€. μ κ²½μ°μλ μΉ μμ
μκ°λ‘λ μ€μ΄μμ§λ§ Uncaught ReferenceError: webpackJsonp is not defined
μ€λ₯κ° λ°μνμ΅λλ€ (μ½λκ° κ³΅ν΅ μ²ν¬λ‘ κ°μ Έμ μμ
μκ° μ¬μ©ν μ μμκΈ° λλ¬Έμ
λλ€). μ΄λ‘ μΈν΄ μμ
μκ° μΌμ° μ’
λ£λκ³ κ°μ§ ꡬνμΌλ‘ λ체λμμ΅λλ€.
CommonsChuckPluginμ μ¬μ©νκ±°λ @ctowlerκ° μ μν μ루μ μ μ¬μ©ν μ μμ΅λλ€.
μ΄κ²μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ°λ₯Ό λ°λλλ€.
λͺ¨λ μλ
,
pdf.jsλ₯Ό Webpackκ³Ό ν¨κ» μ¬μ©νκΈ° μν΄ λ§μ λ
Έλ ₯μ κΈ°μΈμμ΅λλ€. ν΅μ¬μ μμ
μκ° λ³λμ νμΌμμλ κ²μ μνμ§ μλλ€λ κ²μ
λλ€.
λκ΅°κ° λ€μκ³Ό κ°μ λ¬Έμ μ μ§λ©΄ ν κ²½μ° :
Warning: Setting up fake worker.
λ©μμ§,νμΌμ μΌλ° ν
μ€νΈλ‘ κ°μ Έμ¬ μ μλλ‘ package.jsonμ raw-loader
νμ΅λλ€.
"raw-loader": "latest",
pdf.worker.jsκ° raw-loader
λ₯Ό ν΅ν΄λ‘λλλλ‘ Webpackμ ꡬμ±νμ΅λλ€.
module: {
rules: [
{
test: /pdf\.worker(\.min)?\.js$/,
use: 'raw-loader',
},
{
test: /\.(js|jsx)$/,
exclude: [/node_modules/, /pdf\.worker(\.min)?\.js$/],
use: 'babel-loader',
},
],
},
μ΄μ κΉλ€λ‘μ΄ λΆλΆμ΄ μμ΅λλ€. μμ
μλ₯Ό PDF.jsλ‘ μ λ¬νλ μ μΌν λ°©λ²μ workerSrc
μ€μ μ μ¬μ©νλ κ²μ
λλ€. λΆνΈνκ²λ
pdfjsLib.PDFJS.workerSrc = require('pdfjs-dist/build/pdf.worker');
μλνμ§ μμ΅λλ€.
κ·Έλ¬λ! μ°λ¦¬λ Blob
sμμ μ¦μμμ URLμ λ§λ€ μ μκ³ λ¬Έμμ΄μμ μ¦μμμ Blob
sλ₯Ό λ§λ€ μ μμ΅λλ€!
κ·Έλμ λλ₯Όμν μμ
μ루μ
μ λ€μκ³Ό κ°μ΅λλ€.
const pdfjsLib = require('pdfjs-dist');
const pdfjsWorker = require('pdfjs-dist/build/pdf.worker.min');
const pdfjsWorkerBlob = new Blob([pdfjsWorker]);
const pdfjsWorkerBlobURL = URL.createObjectURL(pdfjsWorkerBlob);
pdfjsLib.PDFJS.workerSrc = pdfjsWorkerBlobURL;
π : D
js
require.ensure([], function () {
var worker;
worker = require('./pdf.worker.js');
callback(worker.WorkerMessageHandler);
});
pdf.worker.min
νλ€λ©΄ Webpackμ νΌλμ€λ¬μνκ³ μ΄μ¨λ pdf.worker.js
ν©λλ€. λ λμ κ²μ PDF.js μ μΆμ λ λ²μ μ‘°μ°¨λ μΆμ λμ§ μμ pdf.worker.js
ν©λλ€. κ·Έλ λ€λ©΄μ΄ μ°λ κΈ°λ₯Ό μ΄λ»κ² μ²λ¦¬ ν μ ββμμ΅λκΉ?js
new webpack.NormalModuleReplacementPlugin(
/pdf\.worker(\.min)?\.js$/,
path.join(__dirname, 'node_modules', 'pdfjs-dist', 'build', 'pdf.worker.min.js'),
),
/pdf\.worker(\.min)?\.js$/
-λ³΄λ€ κ΅¬μ²΄μ μΌλ‘ pdf.worker.js
λ° pdf.worker.min.js
μ μΌμΉνλ λͺ¨λ νμΌμ΄ μΆμ λ λ²μ μΌλ‘ λ체λλλ‘ν©λλ€.ν΄. μ΄κ²μ΄ λꡬμκ²λ λμμ΄λκΈ°λ₯Ό λ°λλλ€!
@wojtekmaj μ°λ¦¬λ webpack μ¬μ©μλ₯Όμν μ λ‘ κ΅¬μ±μ μν΄ pdfjs-dist / webpackμ μΆκ°νμ΅λλ€. https://github.com/yurydelendik/pdfjs-react μμ μ¬μ©λ²μ νμΈν μ μμ΅λλ€.
@yurydelendik κ°μ¬ν©λλ€, μ, μ λ μ΄κ²μ μκ³ μμμ΅λλ€. μμ ν μλνλλ‘ κ΄λ¦¬νμ§λ λͺ»νμ§λ§ νλμ μ»΄νμΌ λ νμΌλ‘ λλλ κ²μ΄ νμνκΈ° λλ¬Έμ μ¬λ¬ λ¬Έμ μ μ§λ©΄νμ΅λλ€.
κ·Έ μ΄μ λ λ΄κ° react-pdfλ₯Ό μμ
webpack, browserify λ° κΈ°νμ λν μ§μΉ¨μ μμ±νλ κ²μ λ§ν κ²λμκ³ pdf.worker.jsλ₯Ό μ€μ€λ‘ νμ νλΌκ³ λ§ν μμλ λ°©λ²μ μμ΅λλ€.
λ΄ μ¬μ©μκ° μ½κ² μ€μΉν μ μμ΄μΌν©λλ€. package.json + import, boom, λ€λ₯Έ κ²μ μμ΅λλ€.
@wojtekmaj λλ λΉμ μ μꡬ μ¬νμ μ λ§λ‘ μ΄ν΄νμ§ λͺ»ν©λλ€. pdfjs-distλ₯Ό μΆκ°νκ³ pdfjs-dist / webpackμ μ¬μ©νλ κ²μ΄ λ°μ κ΅¬μ± μμ νλ‘μ νΈμμ μ¬μ©νλ κ²μ΄ μ΄λ»κ² λΆκ°λ₯ν μ§ λͺ¨λ₯΄κ² μ΅λλ€. κ·Έλ¦¬κ³ μ¬μ©μλ μ μ (κ΅¬μ± μμ νλ‘μ νΈ) λ§ ν¬ν¨ν©λλ€.
νλμ μ»΄νμΌ λ νμΌλ‘ λλλ κ²μ λμκ² νμνμ΅λλ€.
νλμ μ»΄νμΌ λ νμΌμ λΉμ μ΄ μνλ κ²μ΄ μλλλ€ : a) νμ΄μ§ μμ, b) μΊμ± λ° μ μ‘ ν¬κΈ°, c) μμ μμ κ°λ₯ν λ¬Έμ -νμ§λ§ λΉμ μ μ νμ λλ€.
μλ
νμΈμ.
μ£μ‘ν©λλ€. μ΄μ κ²μλ¬Όμ μλͺ» μ½μμ΅λλ€. λλ λΉμ μ΄ μμ ν λ€λ₯Έ / examples / webpackμ λν΄ μ΄μΌκΈ°νκ³ μλ€κ³ μκ°νμ΅λλ€. pdfjs / webpackμ μ¬μ©νλλ‘ νμ€ν μ
λ°μ΄νΈν΄μΌν©λλ€! κ°μ¬ν©λλ€!
ν κ°μ§ λ ... pdfjs-dist / webpackμ μ¬μ©νλ€κ³ ν΄μ pdf.js μμ²΄κ° pdf.worker.jsλ₯Ό μꡬνλ κ²μ λ§μ μλ μμ΅λλ€. λλ λ€μμΌλ‘ λλ©λλ€.
pdf.workerλ₯Ό νλͺ© μ€ νλλ‘ μ μνλ©΄ λ λ λΉ μ§κ³ λ€μ κ³Ό κ°μ΄ λλ©λλ€.
μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν΄κ²°ν©λκΉ?
μμ react-pdf μμ λ‘ yarn build
λ₯Ό μ€ν ν ν λ€μ νμΌμ μ»μμ΅λλ€.
...
File sizes after gzip:
198.42 KB build/7b14afe24b211632ecc8.worker.js
197.76 KB build/static/js/0.974e8de4.chunk.js
130.14 KB build/static/js/main.5a79c9e3.js
4.19 KB build/static/css/main.d852b162.css
...
μ μμ λλ€. μ±μ 'build / static / js / main.5a79c9e3.js'νλͺ© (pdf.js + react), 'build / static / js / 0.974e8de4.chunk.js'λ pdf.worker.js λ체 μ½λμ λλ€. μμ μκ° λΉνμ±νλκ³ 'build / 7b14afe24b211632ecc8.worker.js'μμ μ μ½λκ°λ‘λλ©λλ€. λ΄κ° λκ°λ₯Ό λμΉκ³ μμ΅λκΉ?
@wojtekmaj μ¬μ©μμ ν μ€νΈ μ±μΌλ‘ μμ ν λ°μ κ΅¬μ± μμ (μ?)λ₯Ό μ€λΉνκ³ STRκ³Ό ν¨κ» λ³λμ λ¬Έμ λ‘λ³΄κ³ νμμμ€-νΉμ λ¬Έμ κ°μ΄ λ¬Έμ μ κ΄λ ¨μ΄ μλ€κ³ μκ°ν©λλ€.
PDFJS.workerSrc = 'scripts.bundle.js';
PDFJS.getDocument (getPdfName) .then ((pdfFile : any) => {
this.pdfFile = pdfFile;
this.renderPdfIntoPages (pdfFile, getPdfPages, this.pdfReady);
});
λ€μκ³Ό κ°μ κ°μΉλ₯Ό ν λΉνκ³ κ·Έ μν ...
κ°μ¬...
@yurydelendik μ루μ
μ μ¬μ©νλ λμ λκ΅°κ° window
μ μλμ§ μμ μ€λ₯λ₯Ό λ°μΌλ©΄
globalObject: 'true'
μΉν© ꡬμ±μ output
μΈκ·Έλ¨ΌνΈμμ.
webpackμ λ²κ·Έκ°μλ κ² κ°μ΅λλ€. web workers
μμ
ν λ webpackμ΄ window
κ°μ²΄λ₯Ό μλ§μΌλ‘ λ§λλλ€. λ°λΌμ μμ ν΄νΉμ κ·Έ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€.
@wojtekmaj :
μ루μ
μ κ°μ¬λ립λλ€! Chrome, FF, Edge, Opera, Safariμμ μ μλν©λλ€. κ·Έλ¬λ babel-loader
μμ μ μΈνλ©΄ ES5λ‘ λ€μ λ³νλμ§ μμ΅λλ€. κ·Έλμ IE11 λ±μμ λ¬Έμ κ° λ°μν©λλ€. μλλ©΄ κ±°κΈ°μ λκ° λΉ μ‘λμ?
λ΄κ° μ¬κΈ°μ λκ° μλͺ»νκ³ μμμ§λ λͺ¨λ₯΄λ μ€ λλν μ¬λλ€μ @wojtekmaj μ μκ°μ κΈ°μ°¨λ₯Ό νκ³ ν¨μ¬ λ κ°λ¨νκ² μλνμ΅λλ€.
webpack.configμμ :
...
{
test: /pdf\.worker(\.min)?\.js$/,
loader: 'file-loader'
},
κ·Έλ¦¬κ³ λ΄ μ½λμμ :
import PDFJS from 'pdfjs-dist';
import PDFJSWorker from 'pdfjs-dist/build/pdf.worker.min';
PDFJS.GlobalWorkerOptions.workerSrc = PDFJSWorker;
...
κ΅¬μ± :
μ΄λ΄, λλ webpackκ³Ό pdfjsλ₯Ό μ¬μ©νλ λ° λ¬Έμ κ° μμλ€.
webpack 물건μΌλ‘ μΈν΄ μμ μλ₯Όλ‘λνλ €κ³ μλνλ λμμ΄ μ€λ₯κ° λ°μνμ΅λλ€.
λλ κ·Έκ²μ κ³ μΉ μ΄λ€ κ²λ μ°Ύμ μ μμλ€.
vendor_pdfjsWorkerκ° μ‘΄μ¬νμ§λ§μ΄ κ²½λ‘μ μμμ΅λλ€. μ κ²½μ°μλ μμ
μκ° pdf.jsμ κ°μ μμΉμ μκΈ°λ₯Ό μν©λλ€.
μ²μμλ wojtekmajκ° μ€λͺ
νλ―μ΄ workerSrcλ₯Ό λ³κ²½νλ €κ³ νμ΅λλ€. κ·Έλ¬λ λ΄ workerSrcλ μμ
μλ₯Ό μ»κΈ° μν΄ pdfjsμμ μ¬μ©λμ§ μμμ΅λλ€. Webpack ꡬ문 λΆμ λ³κ²½ pdfjs (l.9915) :
if (typeof window === 'undefined') {
isWorkerDisabled = true;
if (typeof require.ensure === 'undefined') {
require.ensure = require('node-ensure');
}
useRequireEnsure = true;
} else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
useRequireEnsure = true;
}
μΌλ‘
if (typeof window === 'undefined') {
isWorkerDisabled = true;
if (typeof require.ensure === 'undefined') {
require.ensure = require('node-ensure');
}
useRequireEnsure = true;
} else if (true) {
useRequireEnsure = true;
}
λ°λΌμ fakeWorkerFilesLoaderκ° μ€μ λμμ΅λλ€ (l.9932).
fakeWorkerFilesLoader = useRequireEnsure ? function () {
κ·Έλ° λ€μ λ΄ workerSrcκ° fakeWorkerFilesLoaderκ° μ μλμ΄ μκΈ° λλ¬Έμ μ»μ μ μμ΅λλ€.
var loader = fakeWorkerFilesLoader || function () {
return (0, _dom_utils.loadScript)(_getWorkerSrc()).then(function () {
return window.pdfjsWorker.WorkerMessageHandler;
});
};
λ΄ μΉν© ꡬμ±μμ λ€μμ μΆκ°νμ΅λλ€.
module: {
noParse: (filename) => {
return /\\node_modules\\pdfjs-dist\\build\\pdf.js/.test(filename);
},
rules: [
.......................
]
},
κ·Έλ¦¬κ³ μ΄ μ€λ₯κ° λ°μνμ΅λλ€.
λ΄ μ€ν¬λ¦½νΈ "ecm_viewer.worker.js"κ° μ‘΄μ¬νμ§ μλλ€λ λ©μμ§κ° νμλ©λλ€.
λ΄ webpack ꡬμ±μ νλͺ©μ μΆκ°νμ΅λλ€.
entry: {
'ecm_viewer': getFileList(),
'ecm_viewer.worker': './node_modules/pdfjs-dist/build/pdf.worker.entry',
}
κ·Έλ¦¬κ³ noParse ν¨μλ₯Ό μ κ±°νλλΌλ μλ²½νκ² μλν©λλ€. μ΄ noParse webpack μ΅μ μ μΆκ° ν λκΉμ§ μ€μ μ€λ₯λ₯Ό λλ²κΉ ν μ μμμ΅λλ€.
λ΄κ°μ΄ κΈμ μ°κΈ°μ μ μ ν μμΉμ μλμ§ λͺ¨λ₯΄κ² μ΅λλ€. λ΄ κ²μλ¬Όμ stackoverflow λλ λ€λ₯Έ κ³³μΌλ‘ μ΄λν μ μμ΅λλ€. μΈμ κ° λκ΅°κ°μκ² λμμ΄ λ μ μμ΅λλ€.
λ΄ μΉν© νλ‘μ νΈμμ λμΌν λ¬Έμ κ° λ°μνμ§λ§ λ€λ₯΄κ² ν΄κ²°νμ΅λλ€. webpackμ λ²λ€λ§ λλ λ‘λμ μμ‘΄νλ λμ CopyWebpackPlugin μ μ¬μ©νμ¬ μμ μ μμ€λ₯Ό λ΄ λΉλ λλ ν 리μ 볡μ¬νμ΅λλ€.
λ΄ λ·°μ΄μμ :
import pdfjsLib from 'pdfjs-dist'; if (process.env.NODE_ENV !== 'production') { //in dev, get it from the node_modules directory //NOTE: don't use the "entry" file -- the script will fail and the web worker will not be used pdfjsLib.PDFJS.workerSrc = `${process.env.APP_ROOT}/node_modules/pdfjs-dist/build/pdf.worker.js`; } else { //in prod, get it from the build directory pdfjsLib.PDFJS.workerSrc = `${process.env.APP_ROOT}/build/pdf.worker.js`; }
webpack.config.js
:const CopyWebpackPlugin = require('copy-webpack-plugin'); return { //... rest of config omitted plugins: [{ new CopyWebpackPlugin([{ from: 'node_modules/pdfjs-dist/build/pdf.worker.js', to: 'pdf.worker.js' }]) }] }
μ΄κ²μ μ°λ¦¬ νμ΄ WEEKS λμ μ¬λ₯νλ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€. @ctowler κ°μ¬ν©λλ€ : D <3
@yurydelendik μ루μ μ μ¬μ©νλ λμ λκ΅°κ°
window
μ μλμ§ μμ μ€λ₯λ₯Ό λ°μΌλ©΄globalObject: 'true'
μΉν© ꡬμ±μ
output
μΈκ·Έλ¨ΌνΈμμ.
webpackμ λ²κ·Έκ°μλ κ² κ°μ΅λλ€.web workers
μμ ν λ webpackμ΄window
κ°μ²΄λ₯Ό μλ§μΌλ‘ λ§λλλ€. λ°λΌμ μμ ν΄νΉμ κ·Έ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€.
@vivektiwary κ°μ λ¬Έμ κ° λ°μνμ΅λλ€. κ³μ ReferenceError: Can't find variable: window
Webpack.config νμΌμ globalObject:'true'
μ€μ μ λ£μμ§λ§ μ΄μ μ±μ΄ μ νλ‘λλμ§ μμ΅λλ€. μλ νλμ?
@yurydelendik μ루μ μ μ¬μ©νλ λμ λκ΅°κ°
window
μ μλμ§ μμ μ€λ₯λ₯Ό λ°μΌλ©΄globalObject: 'true'
μΉν© ꡬμ±μ
output
μΈκ·Έλ¨ΌνΈμμ.
webpackμ λ²κ·Έκ°μλ κ² κ°μ΅λλ€.web workers
μμ ν λ webpackμ΄window
κ°μ²΄λ₯Ό μλ§μΌλ‘ λ§λλλ€. λ°λΌμ μμ ν΄νΉμ κ·Έ λ¬Έμ λ₯Ό ν΄κ²°ν©λλ€.@vivektiwary κ°μ λ¬Έμ κ° λ°μνμ΅λλ€. κ³μ
ReferenceError: Can't find variable: window
Webpack.config νμΌμ
globalObject:'true'
μ€μ μ λ£μμ§λ§ μ΄μ μ±μ΄ μ νλ‘λλμ§ μμ΅λλ€. μλ νλμ?
μ @taihuuho , ꡬμ±μ μΆλ ₯ objμ λ£μμ΅λκΉ?
btw λΉμ μ΄ μ»λ μ€λ₯λ 무μμ
λκΉ?
@vivektiwary λλμ΄ μ€λ₯λ₯Ό μ»κ³ μλ€ ReferenceError: Can't find variable: window
μ¬μ©ν λ pdfjs-dist/webpack
λ΄κ° μ¬κΈ°μ λκ° μλͺ»νκ³ μμμ§λ λͺ¨λ₯΄λ μ€ λλν μ¬λλ€μ @wojtekmaj μ μκ°μ κΈ°μ°¨λ₯Ό νκ³ ν¨μ¬ λ κ°λ¨νκ² μλνμ΅λλ€.
webpack.configμμ :
... { test: /pdf\.worker(\.min)?\.js$/, loader: 'file-loader' },
κ·Έλ¦¬κ³ λ΄ μ½λμμ :
import PDFJS from 'pdfjs-dist'; import PDFJSWorker from 'pdfjs-dist/build/pdf.worker.min'; PDFJS.GlobalWorkerOptions.workerSrc = PDFJSWorker; ...
λλ @varunarora μ μ루μ μ μ¬μ©νκ² https://github.com/mozilla/pdf.js/tree/master/examples/webpackμ λνμ΄ λ¬Έμ νμ΄μ§λ λͺ¨λ μ¬λμκ² μλνμ§ μλ κ² κ°μ΅λλ€.
webpack ꡬμ±μ νΈμ§ ν νμμμ΄ :
PDFJS.GlobalWorkerOptions.workerSrc = require('!!file-loader!pdfjs-dist/build/pdf.worker.min.js').default;
λλ
import PDFJS from 'pdfjs-dist';
import PDFJSWorker from '!!file-loader!pdfjs-dist/build/pdf.worker.min.js';
PDFJS.GlobalWorkerOptions.workerSrc = PDFJSWorker;
λ¬Όλ‘ file-loader
μ€μΉλμ΄ μλμ§ νμΈνμμμ€.
νμΌ λ‘λκ° μμ μλ₯Ό λλ ν 리μ μ¬λ¦¬λλ‘νλ electron-forgeλ₯Ό μ¬μ©νκ³ μμΌλ―λ‘ μ¬μ©ν΄μΌνμ΅λλ€.
PDFJS.GlobalWorkerOptions.workerSrc = '../' + require('!!file-loader!pdfjs-dist/build/pdf.worker.min.js').default;
νμΌ λ‘λλ₯Ό μ¬μ©νλ©΄ λ€λ₯Έ librairiesκ° νμνκΈ° λλ¬Έμ λ΄ μ±μ λλ¨Έμ§ λΆλΆμ λΆμμ©μ΄μμμ΅λλ€. κ·Έλμ λ΄κ° μ°Ύμ λ€λ₯Έ λ°©λ²μ cdnμμ pdf.worker.js νμΌμ μ»λ κ²μ λλ€.
cf μ¬κΈ° : https://github.com/wojtekmaj/react-pdf/issues/321#issuecomment -451291757
κ°μ₯ μ μ©ν λκΈ
λ΄ μΉν© νλ‘μ νΈμμ λμΌν λ¬Έμ κ° λ°μνμ§λ§ λ€λ₯΄κ² ν΄κ²°νμ΅λλ€. webpackμ λ²λ€λ§ λλ λ‘λμ μμ‘΄νλ λμ CopyWebpackPlugin μ μ¬μ©νμ¬ μμ μ μμ€λ₯Ό λ΄ λΉλ λλ ν 리μ 볡μ¬νμ΅λλ€.
λ΄ λ·°μ΄μμ :
webpack.config.js
: