동일한 타입을 사용하는 Node.js 프로젝트끼리 타입 설정 공유를 위한 모듈 입니다.
여러 개의 React 프론트엔드와 Express 백엔드로 REST API를 구성해야 하는 프로젝트에서 ORM을 쓰지 않고 공통적인 타입을 한번만 지정해서 쓸 수 있는 방법을 찾아보다가 만들게 되었습니다.
- frontend 프로젝트와 express 프로젝트 등 여러개의 node.js 프로젝트 끼리 구성된 사이트를 Typescript로 개발해야할 때
- 동일한 타입이 여러 개의 프로젝트에서 동일하게 쓰일 때
커스텀 모듈은 npm link
명령어를 통해 설치 합니다.
작업 순서는 아래와 같습니다.
# 설치 모듈 디렉토리에 npm 설치가 안되어 있는 경우(최초 클론 시)
npm install
src/global.d.ts
디렉토리에서 Type을 지정 합니다.
# 타입 패키지 빌드
npx tsc
# 빌드된 패키지로 Symbolic Link 생성
npm link
커스텀 모듈에 Symbolic Link를 만들어 줍니다.
# 커스텀 모듈을 설치할 프로젝트 디렉토리로 이동
cd {설치할 프로젝트의 디렉토리 경로}
# Symbolic Link 연결
npm link shared-types
tsconfig.json를 다음과 같은 형태로 설정합니다.
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"baseUrl": ".",
"paths": {
"@your-org/shared-types": ["node_modules/shared-types/src"]
},
"typeRoots": ["./node_modules/@types", "./node_modules/shared-types"]
},
"include": ["src/**/*"]
}
import "shared-types";
만약, 이미 설정을 한번 완료한 케이스로 선언한 타입을 업데이트 하신 경우 라면 설정방법의 다음 3개 항목만 다시 수행하면 됩니다.
2. Type 설정
3. 커스텀 모듈 Symbolic Link 생성
4. 이 모듈에서 선언한 타입을 사용할 패키지에 설치