[typescript] ts-node (with nodemon)

민수·2023년 4월 18일
0

ts-node

TypeScript를 사용하면 코드를 작성하고 확인하고 싶으면 컴파일을 진행한 뒤에 코드를 실행할 수 있었다.
이는 개발 속도를 저하시키게 된다.
ts-node를 사용하면 TypeScript 파일(.ts 또는 .tsx)을 직접 실행할 수 있다.
TypeScript 코드를 자동으로 컴파일하여 JavaScript로 변환한 후 Ndoe.js에서 실행시켜준다.

ts-node 설치 및 실행

ts-node 설치

npm init -y
npm install -D typescript ts-node

tsconfig.json 파일 생성

tsconfig.json

{
  "compilerOptions": {
    "module": "CommonJS",
    "outDir": "./dist",
    "target": "ES6",
    "esModuleInterop": true,
    "strict": true,
    "baseUrl": "./src",
    "paths": {
      "@user/*": ["user/*"]
    }
  },
  "include": ["src/**/*"],
  "exclude": ["**/*.test.ts"]
}

ts 예제 파일 생성

src/message.ts

const message: string = "hello world"
console.log(message)

package.json script 수정

package.json

  "scripts": {
    "dev": "ts-node --project tsconfig.json ./src/message"
  },

실행

npm run dev

@경로 사용

@경로를 사용하려면 tsconfig-paths 모듈을 설치해야 한다.

npm install -D tsconfig-paths

@ 예제 파일 생성

user/service/user.service.ts

const variable: string = "user"
export default variable

package.json script 수정

"scripts": {
    "dev": "ts-node -r tsconfig-paths/register --project tsconfig.json ./src/message"
  },

실행

npm run dev

nodemon

Node.js 소스 코드의 변경을 감지해서 자동으로 서버를 재시작해주는 모듈이다.

nodemon 설치

npm install -D nodemon

nodemon.json 설정

nodemon.json

{
  "watch": ["src/**/*"],
  "ext": "ts",
  "exec": "ts-node -r tsconfig-paths/register ./src/message"
}
  • watch : 추적할 디렉토리를 설정한다.
  • ext : 추적할 확장자를 설정한다.
  • exec : nodemon이 실행할 명령어를 설정한다. nodemon이 서버를 재시작 할 때마다 실행된다.

package.json 수정

  "scripts": {
    "dev": "nodemon"
  }

실행

npm run dev

파일을 수정하면 nodemon에 의해서 서버가 재시작 되고 ts-node에 의해 컴파일이 자동으로 진행되게 된다.

0개의 댓글