-
[typescript] nodejs 서버 구축하기 - 1javascript 2020. 12. 7. 19:27
medium.com/@hckcksrl/typescript-%EC%9D%84-%EC%82%AC%EC%9A%A9%ED%95%B4-express-node-js-%EC%84%B8%ED%8C%85-12bbdd62513f 를 참조하여 nodejs, express api 서버를 구축해본다.
tsconfig 명세 알아보기
{ “compilerOptions”: { "lib": ["es5", "es6"], "target": "es5", "module": "commonjs", "moduleResolution": "node", "outDir": "./build", "emitDecoratorMetadata": true, "experimentalDecorators": true, "sourceMap": true }, "exclude" : [ ], "include" : [ ] }
위와 같이 설정하라고 되어있는데, 각각이 어떤 의미인지 알아보자.
"lib
- https://www.typescriptlang.org/tsconfig#lib
typescript는Math
와 같은 JS 기본 제공 library나 document같은 것들에 대한 type definition 지원을 기본적으로 담고있다.
이런 type definition 지원을 최신 JS library에 대해서도 확장하기 위해서 사용하는 configuration이다.
올 수 있는 target으로는 ES2015, ES2016, DOM 등이 있다."target"
- https://www.typescriptlang.org/tsconfig#target
코드가 배포될 환경과 관련이 있다. deploy 할때 변경될 target이라 생각하자."module"
- https://www.typescriptlang.org/tsconfig#target
ts를 컴파일 할 때 import, export 방식을 어떤 module 방식으로 바꿀지에 관련이 있다."outDir"
- https://www.typescriptlang.org/tsconfig#outDir
tsc 컴파일을 한 결과를 어디에 저장할지에 관련이 있다."emitDecoratorMetadata"
- https://www.typescriptlang.org/tsconfig#emitDecoratorMetadata
metadata와 decorator를 컴파일 결과에 포함할 것이냐에 대한 것, 정확히 어떤 것을 지칭하지?"experimentalDecorators"
- typescriptlang.org/tsconfig#experimentalDecorators
ES7 decorator를 지원할지?"sourceMap"
- https://www.typescriptlang.org/tsconfig#sourceMap
sourceMap 파일을 생성할지 여부. sourceMap 파일을 생성하면 디버거 등에서 컴파일된 코드 말고 원본 ts 코드를 볼 수 있게 해준다."exclude"
,"include"
- https://www.typescriptlang.org/tsconfig#Project_Files_0
컴파일시 비포함할, 포함할 파일을 명세한다.
running dependencies
nodemon
- nodemon은 소스코드를 모니터링하고 있다가 코드 수정사항이 생기면 서버를 reloading 해주는 library이다.
nodemon [filename]
을 통해서 nodemon을 거쳐 node를 띄울 수 있다.
ts-node
- ts를 위한 node
- typescript code를 node 실행시켜준다.
package.json에 start script를 추가해준다.
아래 script의 의미는 nodemon으로 ts-node src/index.ts를 모니터링하고 reload 하도록 해.
ts-node를 통해 index.ts로 시작하는 코드를 실행해."scripts": { "start": "nodemon --exec ts-node src/index.ts" }
'javascript' 카테고리의 다른 글
Chrome Extension 개발 이제 여기에 react를 끼얹은... (0) 2021.02.12 Chrome Extension 개발 해보기 - Getting Started 따라하기 (0) 2021.02.11 Javascript class의 내부 함수, method (0) 2020.11.26 Javascript Import에 대하여 - import React from 'react' (0) 2020.11.23 javascript를 쓰지만 내가 잘 몰랐던 것들 (0) 2020.10.20