Webpack5 μ€μ νκΈ° (ESM)
νμ¬μμ Javascript μ© μλΉμ€ SDKλ₯Ό κ°λ°νλ©΄μ μ€μ νλ webpack5 μ€μ νμΌμ κΈ°λ‘νλ€. μ€λμ μ μ κΉ μ ν΄λ³΄μλκ² webpack2 λ²μ μ΄μλλ° μ΄λμ 5κΉμ§ λμλ€. μκ³ μ¬μ©νλκ² μλλ€λ³΄λ μ°λ©΄μ μ λ₯Ό λ¨Ήμλ€…π₯Ίπ₯Ίπ₯Ί
Webpack5 μ€μ νκΈ° (ESM μ¬μ©)
νμ¬μμ κ°λ°ν SDKλ CJS(CommonJS)μμ ESM(ECMAScript Module) λͺ¨λ λ°©μμ μ¬μ©νμ¬ κ°λ°νλ€. ESM λͺ¨λ λ‘λ μ¬μ©νκΈ° μν΄ package.jsonμ μλ μ€μ μ μΆκ°νλ€.
package.json
|  |  | 
μλ κΈμμλ CJSκ° κΈ°λ³Έκ°μ΄κΈ° λλ¬Έμ λΌμ΄λΈλ¬λ¦¬μ κ²½μ° CJSλ‘ κ°λ°νλ κ²μ μΆμ²νκ³ μλ€.
μ€μΉ λΌμ΄λΈλ¬λ¦¬
|  |  | 
- webpack-merge- μΉν© μ€μ μ νλλ‘ λ³ν©ν΄μ£Όλ λΌμ΄λΈλ¬λ¦¬. μΉν© μ€μ μ κ°λ°μ©κ³Ό λ°°ν¬μ©μΌλ‘ λλκΈ° μν΄ μ μ©νλ€.
 
- webpack-stream
- νμ€ν¬ λ¬λλ gulpλ₯Ό μ¬μ©νκ³ μλ€. gulpμμ μΉν©μ λͺ¨λλ§μμ μ μΆκ° νκΈ° μν΄ μ€μΉνλ€.
 
- νμ€ν¬ λ¬λλ 
webpack.config.js
|  |  | 
target
- μΉν©μ μ¬λ¬ νκ²½κ³Ό νμΌμΌλ‘ μ»΄νμΌ ν μ μλ€.
- Targets|webpack
entry
- entryλ μ ν리μΌμ΄μ μ λ²λ€λ¦¬ν λ νλ‘μΈμ€λ₯Ό μμν μ§μ μ΄λ€.
- Entry and Context|webpack
output
- outputμ μ»΄νμΌ λ λ²λ€νμΌκ³Ό 리μμ€λ₯Ό μ΄λ κ²½λ‘μ μ΄λ€ μ΄λ¦μΌλ‘ μμ±ν μ§ μ§μ ν μ μλ€.- entryλ μ¬λ¬ μ§μ μ΄ μμ μ μμ§λ§- outputμ νλμ ꡬμ±λ§ μ§μ ν μ μλ€.
- Output|webpack
resolve
- resolveμ΅μ μ λͺ¨λμ ν΄μνλ λ°©μμ μ§μ ν μ μλ€.
resolve.modules
- λͺ¨λμ ν΄μν  λ κ²μν  λλ ν°λ¦¬λ₯Ό μΉν©μ μλ €μ€λ€. μλκ²½λ‘λ nodeκ° νμ¬ λλ ν°λ¦¬μ μμ λλ ν°λ¦¬λ₯Ό ν΅ν΄ node_modeulsλ₯Ό κ²μνλ λ°©λ²κ³Ό μ μ¬νκ² κ²μλλ©°, μ λκ²½λ‘λ μ€μ§ μ£Όμ΄μ§ λλ ν°λ¦¬μμλ§ κ²μνλ€.
webpack.config.js
|  |  | 
webpack.config.js
|  |  | 
resolve.fallback
webpack5μμλ Node.js μ½μ΄ λͺ¨λμ λν΄ μλ polyfillμ μ 곡νμ§ μλλ€. κ·Έλ¬λ―λ‘ λΈλΌμ°μ μμ μ€νλλ μ½λμμ μ¬μ©νλ κ²½μ° npm λͺ¨λμ μ§μ  μ€μΉνκ³ ν¬ν¨ν΄μΌ νλ€.
λ€μμ webpack 5 μ΄μ μ webpackμ΄ μ¬μ©ν polyfill λͺ©λ‘μ΄λ€. νμ¬μμλ λͺ¨λ  μ€μ νμΌλ ESM λ°©μμΌλ‘ webpack.conf.js νμΌ λν ESMμΌλ‘ μμ±λμλ€. ESMμ κ²½μ° μλμ κ°μ΄ μ€μ νλ€.
|  |  | 
|  |  | 
To Do
- CJS, ESM