타입 스크립트 프로젝트 만들기
728x90
타입 스크립트 dir 를 선택합니다.
vsCode 의 터미널에서 다음 명령을 차례대로 실행합니다.
- mkdir "filename"
- cd "filename"
- npm init --y
- package.json 은 node.js 가 관리하는 패키지 관리 파일로서 프로젝트 정보와 관련 패키지가 기록됩니다.
다른 개발자의 컴퓨터에 typescript와 ts-node 패키지가 설치되어 있지 않을 수도 있기에 이를 고려해
--> npm i -D typescipt ts-node
package.json 에 등록합니다.
Promise와 같은 타입을 사용하려면 @types/node 라는 패키지를 설치해야 합니다.
--> npm i -D @types/node
tsconfig.json 파일 만들기
--> tsc -- init
json파일을 열어보면 실제 개발을 진행하는데 필요한 많은 옵션이 비활성화 되어있습니다.
필요한 옵션만 간략하게 설정합니다.
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es5",
"moduleResolution": "node",
"outDir": "dist",
"baseUrl": ".",
"sourceMap": true,
"downlevelIteration": true,
"noImplicitAny": false,
"paths": {"*": ["node_modules/*"]}
},
"include": ["scr/**/*"]
}
src 디렉터리와 소스 파일 만들기
--> mkdir -p src/utils
그리고 파일을 만들어줍니다.
--> touch src/index.ts
* 시작 소스 파일명을 index로 짓는 이유
- node 나 ts-node로 소스 파일을 실행하려면 ts.node ./src/index.ts 명령을 사용합니다.
- 하지만 소스 파일명이 index이면 파일명을 생략하고 단순히 ts-node ./src로 실행할 수 있습니다.
- 이 때문에 프로젝트의 시작 함수 (엔트리 함수라고 합니다.)가 있는 소스 파일명은 보통 index로 짓습니다. python으로 따지면 (main 이랑 비슷한 개념)
package.json 수정
타입스크립트 프로젝트를 개발할 때는 ts-node를 사용하지만, 막상 개발이 완료되면 타입스크립트 소스코드를 ES5 자바스크립트 코드로
변환해 node로 실행해야 합니다. 이를 위해 다음처럼 package.json 파일을 열고 dev와 build 명령을 추가합니다.
{
"name": "File_name",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"dev": "ts-node src",
"build": "tsc && node dist"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node": "^14.14.10",
"ts-node": "^9.1.1",
"typescript": "^4.1.2"
}
}
이 명령들은 npm run 명령 형태로 사용합니다. 다음 명령을 실행해 src 디렉터리에 있는 index.ts 파일을 컴파일 하고 실행합니다.
--> npm run dev
dist 디렉터리와 ES5로 컴파일된 js 파일을 생성하려면
--> npm run build
728x90
'TypeScript' 카테고리의 다른 글
Typescript Interface (0) | 2021.11.28 |
---|---|
Typescript Class (0) | 2021.11.27 |
typeorm database migration (0) | 2021.06.24 |
Nestjs 에서 Swagger 사용하기 (0) | 2021.06.24 |
Nest js implements, injectable(DI) 알아보기 (0) | 2021.06.24 |
댓글
이 글 공유하기
다른 글
-
Typescript Class
Typescript Class
2021.11.27 -
typeorm database migration
typeorm database migration
2021.06.24 -
Nestjs 에서 Swagger 사용하기
Nestjs 에서 Swagger 사용하기
2021.06.24 -
Nest js implements, injectable(DI) 알아보기
Nest js implements, injectable(DI) 알아보기
2021.06.24