본문 바로가기

Nest5

[NestJS] SWC 사용시 "Cannot find module" 오류 해결하기 `NestJS`에서 `SWC` 사용할때 모듈을 찾을 수 없는 문제들이 발생합니다. 따라서 아래와 같이 수정하면 되겠습니다. ES6 모듈 사양 준수 `tsconfig.json` "esModuleInterop": true `esModuleInterop` 옵션 활성화 import * 수정 `SWC` 실행시 `import * as` 형태로 가져오는 `namespace import` 방식의 경우도 오류가 난다면, 일반적인 `import` 방식으로 변경해줘야 합니다. 예로들면 import * as fs from 'fs'; -> import fs from 'fs'; Cannot find module 해결하기 `tsconfig.json` `@` 별칭을 추가해줍니다. "paths": { "@/*": ["src/*"] }.. 2023. 8. 11.
[NestJS] ".env" 대신 ".yaml" 환경변수 구성하기 설정 파일 만들기 저는 `src/utils/config` 위치에 `configuration.yaml.ts` 파일 이름으로 생성했습니다. const YAML_CONFIG_PRODUCTION = 'production.yaml'; const YAML_CONFIG_DEVELOPMENT = 'development.yaml'; export default function ConfigurationYaml(): Record { const config = jsyaml.load( process.env.NODE_ENV === 'production' ? readFileSync(join(__dirname, YAML_CONFIG_PRODUCTION), 'utf8') : readFileSync(join(__dirname, YAML_.. 2023. 8. 11.
[NestJS] 프로젝트 구조 및 Controllers 파악하기 프로젝트 구조 구조 설명 app.controller.ts 단일 라우트를 가진 기본 컨트롤러 app.controller.spec.ts 컨트롤러에 대한 유닛 테스트 app.module.ts 애플리케이션의 루트 모듈 app.service.ts 단일 메서드를 가진 기본 서비스 main.ts NestFactory라는 코어 함수를 사용하여 Nest 애플리케이션 인스턴스를 생성하는 애플리케이션의 진입 파일 컨트롤러 컨트롤러는 들어오는 요청을 처리하고 클라이언트에 응답을 반환하는 역할을 합니다. 컨트롤러의 목적은 응용 프로그램에 대한 특정 요청을 받는 것입니다. 라우팅 메커니즘은 어떤 컨트롤러가 어떤 요청을 받아야 하는지를 제어합니다. 일반적으로 각 컨트롤러에는 하나 이상의 라우트가 있으며, 각각의 라우트는 다른 동작.. 2023. 6. 9.
[NestJS] 표준모드와 모노레포 및 CLI 속성 살펴보기 프로젝트 구조 Nest에서는 표준 모드와 모노레포 모드 두 가지 구조로 프로젝트를 관리할 수 있습니다. 표준 모드는 "nest new"를 실행하여 생성된 기본 프로젝트 구조로, 컴포넌트를 추가하며 작업할 수 있습니다. 모노레포 모드는 여러 프로젝트와 라이브러리를 관리하기 위한 대체 구조로, 빌드 프로세스를 단순화하는 장점이 있습니다. 나머지 Nest 기능과 문서는 두 모드에 동일하게 적용되며, 필요에 따라 표준 모드에서 모노레포 모드로 전환할 수 있습니다. 기능 표준 모드 모노레포 모드 다중 프로젝트 별도의 파일 시스템 구조 단일 파일 시스템 구조 node_modules 및 package.json 별도의 인스턴스 모노레포 내에서 공유 기본 컴파일러 tsc webpack 컴파일러 설정 개별적으로 지정 모노.. 2023. 6. 7.
[NestJS] NestJS CLI 시작 및 실행 명령어 보기 NestJS CLI 설치하기 npm i -g @nestjs/cli NestJS CLI 전역 설치 NestJS New 명령어 새로운 (표준 모드) Nest 프로젝트를 생성합니다. nest new sample-nestjs Options 옵션 별칭 설명 --dry-run -d 파일 시스템을 변경하지는 않고 변경 사항을 보고합니다. --skip-git -g Git 저장소 초기화를 건너뜁니다. --skip-install -s 패키지 설치를 건너뜁니다. --package-manager -p 패키지 관리자를 지정합니다. npm, yarn, pnpm 중 하나를 사용할 수 있습니다. 패키지 관리자는 전역으로 설치되어 있어야 합니다. --language -l 프로젝트에 사용할 프로그래밍 언어를 지정합니다. TypeScri.. 2023. 6. 4.