π― Goals
- node_modules ν νλ‘μ νΈ λ΄μ μ¬λ¬κ° μμΌλ©΄ μ’μκΉ?
- package.json ν νλ‘μ νΈ λ΄μ μ¬λ¬κ° μμΌλ©΄ μ’μκΉ?
- κ° νμΌ(λͺ¨λ)μ΄ ν¨ν€μ§λ₯Ό μ°Ύμκ°λ μ리λ₯Ό νμ νλ€.
node_modules
μ€μ λΌμ΄λΈλ¬λ¦¬κ° μ€μΉλλ λλ ν 리
λͺ¨λμ΄ κ²½λ‘λ₯Ό λͺ μνμ§ μκ³ ν¨ν€μ§ μ΄λ¦λ§ λ©κ·Έλ¬λ λͺ μνλ©΄ μ΄ νμΌ λ΄μμ λΆλ¬μ¨λ€.
// orchestration.ts
// [CASE I] ν¨ν€μ§λͺ
λ§ λͺ
μ
import axios from 'axios';
// [CASE II] μλκ²½λ‘ μ§μ
import requestConfig from '../../config/axiosRequestConfig.json';
// (μλ΅)
CASE I
νμ¬ νμΌμ ν λ¨κ³ μμλλ ν 리(src/node_modules) μμ node_modules λ₯Ό μ°Ύλλ€. => Not found
μμΌλ©΄ ν λ¨κ³ μμλλ ν λ¦¬λ‘ λ μ¬λΌκ°λ€. (typescript_test/node_modules) => Success
μ°Ύμ λ κΉμ§ μ¬κ·μ μΌλ‘ μμλλ ν 리μμ node_modules λ₯Ό μ°Ύλλ€.
β οΈ νμΌ νμ₯μλ₯Ό μλ΅ν΄μΌνλ€.
ex) 'axios'
CASE II
μλκ²½λ‘λ₯Ό μ§μ ν κ²½μ°μλ νμ¬ νμΌμ μμΉμ λ§κ² rootDir λ΄μμ νμΌμ μ°Ύλλ€.
(rootDir λ³΄λ€ μμλλ ν λ¦¬λ‘ κ° κ²½μ° permission denied λλ€.)
β οΈ νμΌ νμ₯μλ₯Ό λͺ μν΄μΌνλ€.
ex) '../../sum.js'
package.json
ν¨ν€μ§ λͺ©λ‘κ³Ό νλ‘μ νΈ κΈ°λ³Έ μ 보 λ° λΉλλ°©μ λ΄λ νμΌ
μ€μ μμ‘΄μ± ν¨ν€μ§λ dependencies
κ°λ°μ© ν¨ν€μ§λ devDependencies μ 리μ€ν νλ€.
μ¬κΈ°μ 리μ€ν λ νμΌμ node_modules μ μ€μΉλμ΄μΌ νλ€λ λ»μΌλ‘
# νμ¬ λλ ν 리μ package.json μ λ΄κΈ΄
# λͺ¨λ μμ‘΄μ± ν¨ν€μ§λ₯Ό μ€μΉ
$ npm install
tsconfig.json
νμ μ€ν¬λ¦½νΈ μ»΄νμΌλ¬ μ΅μ , νλ‘μ νΈ λμ νμΌμ λͺ μΈνλ νμΌ
β οΈ ts-node λ‘ μ€νν λ λ€λ₯Έ λλ ν 리 νμΌμ μ±κ³΅μ μΌλ‘ import νμ§ λͺ»νλ€.
μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ°μν΄ tsconfig-paths λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ λ°©λ²μ΄ μμ§λ§
ts-node νμ μ€ν¬λ¦½νΈ μ»΄νμΌλ¬λ λ§€λ² μ»΄νμΌ / μ€ννκΈ° λλ¬Έμ νΌν¬λ¨Όμ€κ° μ νλλ€λ μ΄μκ°μλ€.
--transpile-only κ°μ μ΅μ μ ν΅ν΄ 컀λ²κ° κ°λ₯νλ€ν΄λ μ΄λ μλ²½ν μ루μ μ΄ μλλΌ μΆνμ μ‘°μ¬κ° νμνλ€.
λ€μκ³Ό κ°μ΄ tsconfig.json μ μμ±ν΄λ³Ό μ μλ€.
μ μ΄μ production μ νμ
ts-node λ‘ μ€ννλ κ²μ΄ μ’μ μ νμ΄ μλλ€.
π νμ μ€ν¬λ¦½νΈλ μ΄λκΉμ§λ κ°λ°μ©μ΄λ€.
μ€μ μ νμλ νΈλμ€νμΌλ .js νμΌμ μ€νν€μ.
Node.js + Typescript Tip
Node.js λ²μ μ λ°λΌμ νΈνλλ ECMAScript λ²μ μ tsconfig.json μ μ μ ν λ²μ μΌλ‘ λͺ μν΄μΌνλ€.
νμ μ€ν¬λ¦½νΈλ μ΄μ°λλ μλ°μ€ν¬λ¦½νΈλ‘ νΈλμ€νμΌλ νμ μ€νλκΈ° λλ¬Έμ
νΈλμ€νμΌ λμ μλ°μ€ν¬λ¦½νΈ λ¬Έλ² λ²μ (ECMAScript version) μ μ€μ ν μ μλ€.
tsconfig.json example
ꡬλ²μ node.js λ₯Ό μ¬μ©ν κ²½μ° μ΅μ ECMAScript λ¬Έλ²μ μΈμνμ§ λͺ»νκΈ° λλ¬Έμ
κ°λ° νκ²½μ λ§λ λ²μ λͺ μκ° νμνλ€.
π Reference
'Web > Nodejs' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Node.js process μ’ λ£ μ΄λ²€νΈ κ°μ§ (2) | 2021.12.23 |
---|---|
[Node.js] λ‘컬μ μ€μΉλ ν¨ν€μ§ λͺ λ Ήμ΄(CLI)λ‘ μ€ννκΈ° (0) | 2021.07.27 |
[Typescript] Creating Custom Types (0) | 2021.06.21 |
imagemagick module PDF->png κΆν μ€μ Error (0) | 2020.02.06 |
Error: Cannot find module (0) | 2020.01.15 |