μ΄κ²μ λ€μκ³Ό κ°μ κ²½μ° Webpack v4μ λ¬Έμ μ λλ€.
{
νμ: {μꡬμΈμμ΄:κ±°μ§},
}
μ΄ μΆλ ₯μ κ°λ κ²:
./node_modules/pdfjs-dist/build/pdf.js 7873:6-13μ κ²½κ³
μ€μ μ’
μμ±: μ’
μμ±μ μ μ μΌλ‘ μΆμΆν μ μλ λ°©μμΌλ‘ require ν¨μλ₯Ό μ¬μ©ν©λλ€.
ν΄λΉ κ·μΉμ νμ±ννλ©΄ μ΄λ€ μ΄μ μ΄ μμΌλ©°(κΈ°λ³Έμ μΌλ‘ νμ±ννμ§ μλλ€κ³ μκ°νλ―λ‘) μ΄λ λΌμΈμμ μλͺ»λ©λκΉ? PDF.js μμ€ μ½λμ μμ΅λκΉ μλλ©΄ μμ±λ λ²λ€ μ½λμ μμ΅λκΉ? μ’ λ μμΈν μ 보μ 7873νμ λ΄μ©μ μ κ³΅ν΄ μ£Όμμμ€.
Webpack μ€μ μ΄ μΌλΆ νκ²½μμ μ¬μ©μκ° μμ
μλ₯Ό μ λλ‘ κ΅¬μ±νμ§ μμμ λ λμ²΄λ‘ νμν fakeWorkerFilesLoader
μ½λ μ νΈνλμ§ μλλ€κ³ μκ°ν©λλ€. λ°λΌμ μ΄ λ¬Έμ λ μλ§λ PDF.js μμ μμ μ ν¨νμ§ μμ κ²μ
λλ€. 보λ€.
μ°λ¦¬κ° μ¬κΈ°μ μ λ§λ‘ ν μ μλ κ²μ΄ μ무κ²λ μλ€κ³ μκ°νκΈ° λλ¬Έμ λ«μ΅λλ€.
ν΄λΉ κ·μΉμ νμ±ννλ©΄ μ΄λ€ μ΄μ μ΄ μμ΅λκΉ?
νμ€ μΈμ΄ κΈ°λ₯μ΄ μλκΈ° λλ¬Έμ create-react-app
μ΄ requireEnsure: false
μ€μ ν κ² κ°μ΅λλ€.
μ΄κ²μ κ²½κ³ λ₯Ό νμνκΈ° μν΄ pdf.jsλ₯Ό μ¬μ©νλ λͺ¨λ create-react-app
νλ‘μ νΈλ‘ μ΄μ΄μ§λλ€.
./node_modules/pdfjs-dist/build/pdf.js
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted
κ²½κ³ λ₯Ό νΈλ¦¬κ±°νμ§ μλ λ체 μ½λλ₯Ό ν¬ν¨νλ λ°©λ²μ΄ μλμ§ μ λ§νΌ μΆ©λΆν μ΄ν΄νμ§ λͺ»νμ§λ§, λ체λ₯Ό ν¬ν¨νλ κ²μ΄ ν©λ¦¬μ μΌλ‘ 보μ΄λ―λ‘ create-react-app
μ λν λ¬Έμ λ₯Ό μ΄κ² μ΅λλ€
νμ€νμ§ μμ§λ§ ν΄λ°± μ½λμ λν κ°λ₯ν μ루μ μ PDF.jsλ₯Ό es6 λͺ¨λλ‘ κ²μνκ³ λ‘€μ κ³Ό κ°μ κ²μ μ¬μ©νμ¬ ν΄λ°± μ½λλ₯Ό λ³λλ‘ https://github.com/mozilla/pdfλ‘ μ 곡 νλ κ² κ°μ΅λλ€
fakeWorkerFilesLoader
μ½λλ₯Ό λ°λ₯΄λ λ° λ¬Έμ κ°
μΌλΆ νκ²½μμλ μ¬μ©μκ° μμ μλ₯Ό ꡬμ±νμ§ μμμ λμ λλΉμ± μΌλ‘ νμν©λλ€.
@Snuffleupagusμ λν΄ μ‘°κΈ λ μμΈν
μ νν λ¬Έμ κ° μμ΅λλ€. pdf.js(vue-pdf)λ₯Ό κΈ°λ°μΌλ‘ νλ νλ¬κ·ΈμΈμμ μ νν μ€λ₯λ₯Ό κ°μ Έμ΅λλ€.
λ΄κ° μ»λ μ€λ₯λ λ€μκ³Ό κ°μ΅λλ€.
./node_modules/pdfjs-dist/build/pdf.js 9818:60-67μ κ²½κ³
μ€μ μ’
μμ±: require ν¨μλ μ’
μμ±μ μ μ μΌλ‘ μΆμΆν μ μλ λ°©μμΌλ‘ μ¬μ©λ©λλ€.
νμ€νμ§ μμ§λ§ ν΄λ°± μ½λμ λν κ°λ₯ν μ루μ μ PDF.jsλ₯Ό es6 λͺ¨λλ‘ κ²μνκ³ λ‘€μ κ³Ό κ°μ κ²μ μ¬μ©νμ¬ ν΄λ°± μ½λλ₯Ό λ³λλ‘ μ 곡νλ κ² κ°μ΅λλ€. #10317
μ΄κ²μ νλ₯ν κ²μ λλ€. μ΄ κ²½κ³ λ λͺ¨λ CRA νλ‘μ νΈμμ λ§€μ° μ§μ¦λ©λλ€.
@timvandermeijλ μ λ μμ λμ§ μλμ? κΈ°λ€λ €μΌ ν μ§ μ΄μ¬λ₯Ό ν΄μΌ ν μ§ κ³ λ―Όμ λλ€.
μ΄κ²μ΄ PDF.js μΈ‘μμ μμ ν΄μΌ νλ μ¬νμΈμ§, κ·Έλ λ€λ©΄ require.ensure
λν λμμ 무μμΈμ§ λͺ
ννμ§ μμ΅λλ€. "create-react-app"μ λν μ§μμ μ 곡ν μ μμΌλ―λ‘ νΈλ컀μ λ¬Έμ λ₯Ό μ μΆνλ κ²μ΄ κ°μ₯ μ’μ΅λλ€.
https://github.com/mozilla/pdf.js/issues/10253#issuecomment -463377308μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ€λ©΄ κ·Έκ²μ μ΄λ―Έ λ³λμ λ¬Έμ μμ μΆμ λκ³ μμ΅λλ€.
@timvandermeij μλ
νμΈμ, μ΄κ²μ Vue.js μ€μ μμ μ μκ² μΌμ΄λ¬κ³ μ κ° μ°Ύμ μ μλ λͺ¨λ νλ¬κ·ΈμΈμ μλνμ΅λλ€. κ·Έλ€μ λͺ¨λ pdf.jsλ₯Ό κΈ°λ°μΌλ‘νμΌλ©° λμΌν μ€λ₯κ° λ°μνμ΅λλ€.
WARNING in ./node_modules/pdfjs-dist/build/pdf.js 9818:60-67
Critical dependency: require function is used in a way in which dependencies cannot be statically extracted.
μμ μμ μ κ²½μ° react-scripts κ·μΉμ μ¬μ μνμμμ€ .
κ°μ₯ μ μ©ν λκΈ
νμ€ μΈμ΄ κΈ°λ₯μ΄ μλκΈ° λλ¬Έμ
create-react-app
μ΄requireEnsure: false
μ€μ ν κ² κ°μ΅λλ€.μ΄κ²μ κ²½κ³ λ₯Ό νμνκΈ° μν΄ pdf.jsλ₯Ό μ¬μ©νλ λͺ¨λ
create-react-app
νλ‘μ νΈλ‘ μ΄μ΄μ§λλ€.κ²½κ³ λ₯Ό νΈλ¦¬κ±°νμ§ μλ λ체 μ½λλ₯Ό ν¬ν¨νλ λ°©λ²μ΄ μλμ§ μ λ§νΌ μΆ©λΆν μ΄ν΄νμ§ λͺ»νμ§λ§, λ체λ₯Ό ν¬ν¨νλ κ²μ΄ ν©λ¦¬μ μΌλ‘ 보μ΄λ―λ‘
create-react-app
μ λν λ¬Έμ λ₯Ό μ΄κ² μ΅λλ€