전제 : yarn, nest가 전역으로 설치되어 있어야함

npm install -g yarn
npm install -g @nestjs/cli

1. 빌드 도구를 yarn 으로 설정하여 nest 초기 프로젝트를 생성한다.

#backend 폴더에 yarn 패키지매니저로 nest 프로젝트 생성
nest new backend --package-manager yarn

2. lint-staged 와 husky 패키지 추가

yarn add lint-staged --dev
yarn add husky --dev

3. husky 패키지 추가

//package.json
"scripts": {
		...
    "prepare": "husky install",
		...
}

husky를 설치하고 커밋전에 lint를 실행하는 스크립트를 추가한다.

npx husky install
npx husky add .husky/pre-commit "yarn lint"

https://velog.io/@e_juhee/husky8

https://velog.io/@do_dadu/husky-lint-staged를-사용하자-sub-ESLint-자동화하기

4. Config 설정하기

yarn add @nestjs/config
// ~/src/app.module.ts
import { ConfigModule } from '@nestjs/config';

@Module({
	imports: [ConfigModule.forRoot(
		cache: true, // process.env 내부 파일을 미리 메모리에 캐시 해둘 것인가(<https://docs.nestjs.com/techniques/configuration#cache-environment-variables>)
		isGlobal: true, // 해당 모듈을 전역에서 사용할 것인가(<https://docs.nestjs.com/techniques/configuration#use-module-globally>)
	)],
	...
})

export class AppModule {}

5. hot load 적용하기

why? : hot load 를 적용하면 서버를 처음부터 리빌드 하지 않고 변경 파일만 다시 빌드하여 로딩하는 구조