Pdf.js: pdfjs-dist ν”„λ‘œμ νŠΈμ—μ„œ webpack peerDependency μ‚­μ œ

에 λ§Œλ“  2018λ…„ 05μ›” 17일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: mozilla/pdf.js

μ˜ˆμƒλ˜λŠ” λ™μž‘μ€ λ¬΄μ—‡μž…λ‹ˆκΉŒ?
pdfjs-dist ν”„λ‘œμ νŠΈλŠ” webpack을 peerDependency둜 ν¬ν•¨ν•˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€. λΉŒλ“œ λ””λ ‰ν† λ¦¬μ—μ„œ 슀크립트λ₯Ό λ‘œλ“œν•  λ•Œ μ›ΉνŒ© 없이도 μ‹€μ œλ‘œ μž‘λ™ν•  수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

무엇이 잘λͺ»λ˜μ—ˆλ‚˜μš”?
ꡬ성 μš”μ†Œμ—μ„œ PDFJSλ₯Ό μ‚¬μš©ν•˜μ—¬ Angular 6을 μ‚¬μš©ν•˜μ—¬ PDFλ₯Ό μ‹œκ°ν™”ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. λ‚΄ ν”„λ‘œμ νŠΈμ— webpack을 ν¬ν•¨ν•˜μ§€ μ•Šκ³ (μ „ν˜€ ν•„μš”ν•˜μ§€ μ•ŠμŒ), npm λͺ…령을 μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ λ˜λŠ” λˆ„κ΅°κ°€ λ‚΄ ꡬ성 μš”μ†Œλ₯Ό μ„€μΉ˜ν•  λ•Œλ§ˆλ‹€ peerDependency κ²½κ³  νŒμ—…μ„ λ§Œλ“­λ‹ˆλ‹€. .

1-other

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš” @timvandermeijμž…λ‹ˆλ‹€. λ‹΅μž₯을 보내 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

webpack λŠ” λΉŒλ“œ λ„κ΅¬μ΄λ―€λ‘œ 일반적으둜 "devDependency" 둜만 μ΄ν•΄ν•˜κ±°λ‚˜ 라이브러리의 λΉŒλ“œ νŒŒμ΄ν”„λΌμΈμœΌλ‘œ μ œν•œλ©λ‹ˆλ‹€. "peerDependency" 둜 ν¬ν•¨ν•˜λ©΄ μ‚¬μš©μžκ°€ 둜컬둜 μ„€μΉ˜ν•˜κ±°λ‚˜(ν•„μš”ν•˜μ§€ μ•Šκ±°λ‚˜ μ‹ κ²½ 쓰지 μ•Šμ•„λ„ 됨) npm install 에 맀번 ν‘œμ‹œλ˜λŠ” κ²½κ³ λ₯Ό λ¬΄μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€

λ‚˜λŠ” worker-loader μ΅μˆ™ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ†ŒκΈˆ ν•œ κΌ¬μ§‘μœΌλ‘œ λ‚΄ μ˜κ²¬μ„ λ°›μ•„λ“€μ΄μ‹­μ‹œμ˜€. κ·ΈλŸ¬λ‚˜ λ‹€λ₯Έ webpack λ‘œλ”μ™€ 같은 경우 일반적으둜 λΉŒλ“œ ꡬ성 λ‹¨κ³„λ‘œλ§Œ ν•„μš”ν•˜λ©° λ‹€λ₯Έ 것은 ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ›Ή μ™ΈλΆ€(예: Node)μ—μ„œ μ‚¬μš©λ˜μ–΄μ•Ό ν•˜λŠ” μ»¨ν…μŠ€νŠΈμ—μ„œλŠ” 거의 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

pdf.js κ°€ μ–΄λ–€ κ²½μš°μ—λŠ” μΌμ’…μ˜ webpack ν”ŒλŸ¬κ·ΈμΈ 역할을 ν•©λ‹ˆκΉŒ? 그것이 _μžˆλ‹€λ©΄_ λ‘œλ”μ™€ webpack λ₯Ό μ’…μ†μ„±μœΌλ‘œ λͺ¨λ‘ ν¬ν•¨ν•˜λŠ” 것이 _κ°€λŠ₯_ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ·Έλ•Œμ—λ„ κ·ΈλŸ¬ν•œ μ’…λ₯˜μ˜ 지원은 자체 μ €μž₯μ†Œ/λͺ¨λ“ˆλ‘œ μΆ”μΆœλ˜μ–΄μ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•©λ‹ˆλ‹€.

λ‚˜λŠ” repo λ₯Ό webpack 와 κ΄€λ ¨λœ λͺ¨λ“  것을 κ°€μ Έκ°ˆ 자유λ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ Node μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ μ—¬μ „νžˆ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

μ •ν™•νžˆ. 이와 같은 배포 κ°€λŠ₯ν•œ νŒ¨ν‚€μ§€μ— webpack λ₯Ό "peerDependency" 둜 ν¬ν•¨ν•˜λŠ” 것은 λͺ…λ°±νžˆ 잘λͺ»λœ 것이며 μ œκ±°ν•΄μ•Ό ν•©λ‹ˆλ‹€.

worker-loader λ•Œλ¬Έμ— ν”Όμ–΄ 쒅속성이 #9249에 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ €μž₯μ†Œμ— μ €μž₯ν•˜λŠ” 것이 잘λͺ»λœ μ΄μœ μ— λŒ€ν•΄ μžμ„Ένžˆ μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 망가지지 μ•ŠλŠ” 것이 ν™•μ‹€ν•˜λ©΄ μ œκ±°ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @timvandermeijμž…λ‹ˆλ‹€. λ‹΅μž₯을 보내 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

webpack λŠ” λΉŒλ“œ λ„κ΅¬μ΄λ―€λ‘œ 일반적으둜 "devDependency" 둜만 μ΄ν•΄ν•˜κ±°λ‚˜ 라이브러리의 λΉŒλ“œ νŒŒμ΄ν”„λΌμΈμœΌλ‘œ μ œν•œλ©λ‹ˆλ‹€. "peerDependency" 둜 ν¬ν•¨ν•˜λ©΄ μ‚¬μš©μžκ°€ 둜컬둜 μ„€μΉ˜ν•˜κ±°λ‚˜(ν•„μš”ν•˜μ§€ μ•Šκ±°λ‚˜ μ‹ κ²½ 쓰지 μ•Šμ•„λ„ 됨) npm install 에 맀번 ν‘œμ‹œλ˜λŠ” κ²½κ³ λ₯Ό λ¬΄μ‹œν•΄μ•Ό ν•©λ‹ˆλ‹€

λ‚˜λŠ” worker-loader μ΅μˆ™ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μ†ŒκΈˆ ν•œ κΌ¬μ§‘μœΌλ‘œ λ‚΄ μ˜κ²¬μ„ λ°›μ•„λ“€μ΄μ‹­μ‹œμ˜€. κ·ΈλŸ¬λ‚˜ λ‹€λ₯Έ webpack λ‘œλ”μ™€ 같은 경우 일반적으둜 λΉŒλ“œ ꡬ성 λ‹¨κ³„λ‘œλ§Œ ν•„μš”ν•˜λ©° λ‹€λ₯Έ 것은 ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μ›Ή μ™ΈλΆ€(예: Node)μ—μ„œ μ‚¬μš©λ˜μ–΄μ•Ό ν•˜λŠ” μ»¨ν…μŠ€νŠΈμ—μ„œλŠ” 거의 μ˜λ―Έκ°€ μ—†μŠ΅λ‹ˆλ‹€.

pdf.js κ°€ μ–΄λ–€ κ²½μš°μ—λŠ” μΌμ’…μ˜ webpack ν”ŒλŸ¬κ·ΈμΈ 역할을 ν•©λ‹ˆκΉŒ? 그것이 _μžˆλ‹€λ©΄_ λ‘œλ”μ™€ webpack λ₯Ό μ’…μ†μ„±μœΌλ‘œ λͺ¨λ‘ ν¬ν•¨ν•˜λŠ” 것이 _κ°€λŠ₯_ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ κ·Έλ•Œμ—λ„ κ·ΈλŸ¬ν•œ μ’…λ₯˜μ˜ 지원은 자체 μ €μž₯μ†Œ/λͺ¨λ“ˆλ‘œ μΆ”μΆœλ˜μ–΄μ•Ό ν•œλ‹€κ³  μ£Όμž₯ν•©λ‹ˆλ‹€.

λ‚˜λŠ” repo λ₯Ό webpack 와 κ΄€λ ¨λœ λͺ¨λ“  것을 κ°€μ Έκ°ˆ 자유λ₯Ό μ–»μ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ Node μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ μ—¬μ „νžˆ μ™„λ²½ν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

μ›ΉνŒ©μ„ μ’…μ†μ„±μœΌλ‘œ μ œκ±°ν•  κ³„νšμ΄ μžˆμŠ΅λ‹ˆκΉŒ? @nfantone PR을 μ œμΆœν•  κ³„νšμ΄μ…¨λ‚˜μš”?

@mishawakerman 이 λ¬Έμ œμ— λŒ€ν•œ "곡식적인" 응닡을 받은 적이 μ—†μœΌλ©° webpack 이 쒅속 ν•­λͺ©μœΌλ‘œ λ‚˜μ—΄λ˜λŠ” 이유λ₯Ό μ—¬μ „νžˆ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. λ‚΄ (μ œν•œλœ) 직관은 이것이 webpack 에 κ°„μ ‘μ μœΌλ‘œ μ˜μ‘΄ν•˜κ³  μ–΄λ–€ λ°©μ‹μœΌλ‘œλ“  λ¦¬νŒ©ν† λ§ν•΄μ•Ό ν•˜λŠ” κ΅¬ν˜„μ˜ 일뢀에 pdf.js κ°€ κ²°ν•©λ˜μ–΄ μžˆλŠ” 더 큰 문제의 일뢀라고 λ§ν•©λ‹ˆλ‹€.

이 μ§ˆλ¬Έμ€ IRCμ—μ„œλ„ μš”μ²­λ˜λ©° https://mozilla.logbot.info/pdfjs/20180606#c14862530 -c14862541에 λŒ€ν•œ 닡변을 μ–»μ—ˆμŠ΅λ‹ˆλ‹€. μš”μ»¨λŒ€, λ‚˜λŠ” Webpack λ²ˆλ“€λ§ μžμ²΄μ— λŒ€ν•΄ 잘 μ•Œμ§€ λͺ»ν•˜μ§€λ§Œ, 그것이 단지 예λ₯Ό μœ„ν•œ 것이라면 μ œκ±°ν•  수 μžˆμ„ κ²ƒμž…λ‹ˆλ‹€. 단, PR을 μ œμΆœν•˜κΈ° 전에 ν•΄λ‹Ή μ—¬λΆ€λ₯Ό ν™•μΈν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

μ΄λ ‡κ²Œ ν•˜λ©΄ λ‹«λŠ” 것은 #9248이 λ°˜ν™˜λœλ‹€λŠ” 점을 κ°μ•ˆν•  λ•Œ μ‹€μ œλ‘œ 쒋은 μ˜΅μ…˜μ΄ μ•„λ‹™λ‹ˆλ‹€. λŒ€μ‹  IRC( https://mozilla.logbot.info/pdfjs/20180606#c14862530 -c14862634)μ—μ„œ λ…Όμ˜λœ #9580을 μˆ˜ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰