해당 게시글은 인프런 '윤상석' 님의 Nest.js 강의를 보고 공부내용을 정리하였습니다.
https://www.inflearn.com/course/%ED%83%84%ED%83%84%ED%95%9C-%EB%B0%B1%EC%97%94%EB%93%9C-%EB%84%A4%EC%8A%A4%ED%8A%B8/dashboard
{ "scripts": { "build": "tsc", "start:dev": "tsc-watch --onSuccess \"node dist/app.js\"", "prestart": "npm run build", "start": "node dist/app.js" }, "devDependencies": { "@types/node": "^15.3.0", "prettier": "^2.2.1", "tsc": "^2.0.3", "tsc-watch": "^4.2.9", "typescript": "^4.3.4" } }
npm build
라고 하면 scripts에 존재하는 'build'와 매칭 => tsc 컴파일러가 작동 된다.
tsc-watch는 devDependencies에 존재하는 컴파일 설정이다. 즉, 코드가 바뀔때마다 컴파일을 새로 해주면서 'onSuccess' (컴파일 성공시) 뒤에 나오는 'node dist/app.js' 명령어가 실행된다.
이 때, 'dist' 디렉토리에 존재하는 app.js가 실행된다.
dist ?
dist의 경우에는 tsconfig.json에서 컴파일 옵션으로 설정해준 폴더이다. 따라서 옵션에 따라 컴파일을 마치게 되면, dist라는 폴더가 생성이 되고 dist 안에 typescript를 컴파일해서 나오는 결과물인 js파일들이 생긴다.
해당 start:dev 스크립트에서는 이 자바스크립트 파일을 node를 통해서 실행해준다.
npm start를 하기 전 실행하는 코드이다.
'node'라는 자바스크립트 런타임의 타입들을 가져온다. (자바스크립트를 서버에서도 사용할 수 있게하는 것)
코드 포맷팅
타입스크립트 컴파일러
파일을 지켜보면서, 코드가 바뀔 때 마다 컴파일 새로 해줌
TypeScript를 컴파일한 결과물의 js파일을 실행할 것이므로, 개발할때 필요한 TypeScript는 dev모드로 설치한다.
npm install @types/express -D