PDF.js 2.0.385 μ΄μμμ λ€μκ³Ό κ°μ κ°μ₯ κ°λ¨ν μμ λ₯Ό μ€νν©λλ€.
pdf.getDocument({ data: arrayBufferData })
.then(() => console.log('Success'))
.catch() => console.log('Fail'));
λΆλͺ ν Node.jsμμ μ μ€νλ©λλ€.
μ΄ μμ μμμ κ°μ΄ Jestμμ λμΌν λΆλΆμ μ€νν©λλ€(λ¨μνλ¨, ν μ€νΈκ° λΉλκΈ°μμ΄μ΄μΌ νλ€λ μ¬μ€μ 무μνμμμ€):
describe('Test', () => {
it('does something', () => {
pdf.getDocument({ data: arrayBufferData })
.then(() => console.log('Success'))
.catch() => console.log('Fail'));
});
}
testEnvironment
κ° "node"
λ‘ μ€μ λλ©΄ μ±κ³΅ν©λλ€.testEnvironment
κ° "jsdom"
(κΈ°λ³Έκ°)λ‘ μ€μ λ κ²½μ° μ€λ¨λκ³ .then()
μ λλ¬νμ§ μμ΅λλ€.PDF.js 2.0.305 λ° μ΄μ λ²μ μμλ μμ μλ₯Ό μλμΌλ‘ μ½κ² λΉνμ±νν μ μμΌλ―λ‘ λ¬Έμ κ° λμ§ μμ΅λλ€.
μ΄μ #9385 νμ¬ κ΅¬μ±μ ν΅ν΄ μ΄λ₯Ό μνν μ μλ λ°©λ²μ΄ μμΌλ―λ‘ PDF.js λ° Jest/JSDomμ μ¬μ©νλ λͺ¨λ νλ‘μ νΈλ PDF.js κ΄λ ¨ νλͺ©μ ν
μ€νΈν μ μμ΅λλ€ . testEnvironment
λ₯Ό "node"
λ‘ μ ννλ κ²μ μΌλ°μ μΌλ‘ νλ‘ νΈμλμ λ€λ₯Έ λͺ¨λ κ²μ΄ μ€ν¨νκ² λλ―λ‘ μΌλ°μ μΌλ‘ μ΅μ
μ΄ μλλλ€.
ISSUE_TEMPLATE.md λ° CONTRIBUTING.md λͺ¨λμμ μΈκΈν λλ‘:
μ¬μ©μ μ§μ ꡬν λ¬Έμ μ κ²½μ° μ€ν κ°λ₯ν λ¬Έμ μ λν΄ μ€ν κ°λ₯ν μμ νκ³ μμ μμ μ λν μ‘μΈμ€λ₯Ό μ 곡ν΄μΌ ν©λλ€. κ·Έλ¦¬κ³ μ¬λλ€μ΄ λ€μν JS νλ μμν¬(μ΄ κ²½μ° "Jest")μ μ΅μνλ€κ³ κ°μ νμ§ λ§μμμ€.
컨ν
μ€νΈλ μ½λκ° μμΌλ©΄ λ€μ μ§λ¬Έμ΄ λ μ€λ¦
λλ€.
μμ
μκ° μ§μλ©λκΉ? κ·Έλ λ€λ©΄ workerSrc
μ΅μ
μ μ€μ νκ³ μμ
μκ° νμ±νλ μνμμ ν
μ€νΈλ₯Ό μ€νν΄ λ³΄μ
¨μ΅λκΉ?
workerPort
μ΅μ
μ μ¬μ©νμ¬ μμ
μ νμΌμ λ‘λν΄ λ³΄μ
¨μ΅λκΉ? μμ
μλ₯Ό getDocument
μ μ λ¬ν μλ μμ΅λλ€. https://github.com/mozilla/pdf.js/blob/0d391daccc2f4e4b9c91268e719bd10fe63a49ae/src/display/api.js#L129 -L130 μ°Έμ‘°
λλ κ·Έκ²μ μ²λ¦¬νλ λ° μ±κ³΅νμ΅λλ€! λμ²λΌ λ§ν μ¬λλ€μ μν΄ pdfjs.GlobalWorkerOptions.workerSrc
λλ pdfjs.GlobalWorkerOptions.workerPort
λ₯Ό μ€μ νμ§ λ§μμμ€. λμ pdf.worker.entry.js νμΌμ μ¬μ©νμΈμ. κ°μ Έμ€κΈ°λ§ νλ©΄ λμ
λλ€!
μμ μ루μ μ μ μκ² ν¨κ³Όκ° μμμ΅λλ€. λμ jsdom λμ nodeλ₯Ό μ¬μ©νλλ‘ jestλ₯Ό ꡬμ±ν΄μΌ νμ΅λλ€(κΈ°λ³Έμ μΌλ‘ νμ±νλ¨)
μ΄κ²μ λ΄ μ¬μ νμΌμ 맨 μμ μΆκ°νλ©΄ ν΄κ²°λμμ΅λλ€.
/**
* @jest-environment node
*/
λλ₯Ό μν΄ μμ μ루μ μ€ μ΄λ κ²λ μλνμ§ μμ΅λλ€. jest ν μ€νΈμ ν¨κ» vue-cliλ₯Ό μ¬μ©νκ³ μμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
λλ κ·Έκ²μ μ²λ¦¬νλ λ° μ±κ³΅νμ΅λλ€! λμ²λΌ λ§ν μ¬λλ€μ μν΄
pdfjs.GlobalWorkerOptions.workerSrc
λλpdfjs.GlobalWorkerOptions.workerPort
λ₯Ό μ€μ νμ§ λ§μμμ€. λμ pdf.worker.entry.js νμΌμ μ¬μ©νμΈμ. κ°μ Έμ€κΈ°λ§ νλ©΄ λμ λλ€!