본문 바로가기

typescript

타입스크립트 프로젝트 만들기

반응형

타입스크립트를 만들기 전에 노드제이에스 프로젝트는 디렉터리를 하나 만들고 package.json이란 이름의 파일을 만드는 것으로 시작합니다. 

 

npm init 명령을 실행해서 생성합니다. 

package.json은 노드제이에스가 관리하는 패키지 관리 파일로서 프로젝트 정보와 관련 패키지가 기록됩니다. 

{
  "name": "ch02-1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

 

 

- 프로젝트 구현에 필요한 다양한 오픈소스 패키지를 npm install 또는 간단히 npm i 명령으로 설치합니다.

- 이 때 두 가지 옵션을 줄 수 있습니다.

 

npm i --save : 프로젝트를 실행할 때 필요한 패키지로 설치합니다. 패키지 정보가 package.json 파일의 'dependencies' 항목에 등록됩니다.
npm i --save-dev : 프로젝트를 개발할 때만 필요한 패키지로 설치합니다. 패키지 정보가 package.json 파일의 'devDependencies' 항목에 등록됩니다.

- 타입스크립트 프로젝트는 typescriptts-node 패키지를 설치합니다.

 

npm i -D typescript ts-node

 

* tsconfig.json 파일 

- 타입스크립트 프로젝트는 타입스크립트 컴파일러의 설정 파일인 tsconfig.json 파일이 있어야 합니다.

- 이 파일은 tsc --init 명령으로 만들 수 있습니다.

 

{
	"compilerOptions": {
	  "module": "CommonJS",
	  "esModuleInterop": true,
	  "target": "es5",
	  "moduleResolution": "node",
	  "outDir": "dist",
	  "baseUrl": ".",
	  "sourceMap": true,
	  "downlevelIteration": true,
	  "noImplicitAny": false,
	  "paths": {"*" : ["node_modules/*"]}
	},
	"include": ["src/**/*"]
  }

 -  complierOptions:  tsc 명령 형식에서 옵션을 나타냅니다. 

 -  include : 대상 파일 목록 (src/**/*은 src의 하위 디렉터리에 있는 모든 파일을 컴파일 대상으로 포함)

 -  module : ES5 자바스크립트 코드는 웹 브라우저와 노드제이에서 양쪽에서 모두 동작해야 합니다. 웹 브라우저에서는 AMD(asynchronous module definition) 방식으로 동작하고, 노드제이에스처럼 웹 브라우저가 아닌 환경에서는 CommonJS 방식으로 동작합니다.  ( amd : 웹 브라우저에서 동작, commonjs : 노드제이에스에서 동작)

 -  moduleResolution : module이 commonjs이면 node amd이면 classic으로 설정

 -  target : 트랜스파일할 대상 자바스크립트 버전을 설정합니다. (대부분 es5를 키값으로 설정)

 -  baseUrl과 outDir : 트랜스파일된 ES5 자바스크립트 파일을 저장하는 디렉터리를 설정합니다. tsc는 tsconfig.json 파일이 있는 디렉터리에서 실행됩니다. 

 -  paths : from 부분을 해석할 때 찾아야 하는 디렉터리를 설정합니다. 

 - esModuleInterop : true 

 - sourceMap : .js 이외에도 .js.map 파일이 만들어집니다. 이 소스맵 파일은 변환된 자바스크립트 코드가 타입스크립트 코드의 어디에 해당하는지를 알려줍니다. 

 

* 모듈 이해하기

- import : 다른 모듈의 기능을 이용하기 위해서 사용하는 키워드

 

import {심벌 목록} from '파일의 상대 경로';

- import * as 구문 

    - import 구문의 또 다른 형태는 as 키워드를 함께 사용하는 것입니다.

 

import * as 심벌 from '파일 상대 경로';

- export : 기능을 제공하는 쪽에서 사용하는 키워드 (interface, class, type, let, const 키워드 앞에도 붙일 수 있습니다.)

 

 

* 외부 패키지를 사용할 때 import 문

- 외부 패키지를 사용할 때 import 문 사용법을 알아보겠습니다. 

- 실습을 위해 다음처럼 chance와 ramda라는 패키지를 설치합니다.

- chance 패키지는 그럴듯한 가짜 데이터(fake data)를 만들어 주는 데 사용되며, ramda는 함수형 유틸리티 패키지입니다. 

반응형

'typescript' 카테고리의 다른 글

프론트엔드 webpack + typescript 설정  (0) 2021.09.17
타입스크립트(TypeScript) 객체와 타입  (0) 2021.08.15