설정 파일 만들기
저는 `src/utils/config` 위치에 `configuration.yaml.ts` 파일 이름으로 생성했습니다.

const YAML_CONFIG_PRODUCTION = 'production.yaml';
const YAML_CONFIG_DEVELOPMENT = 'development.yaml';
export default function ConfigurationYaml(): Record<string, any> {
  const config = jsyaml.load(
    process.env.NODE_ENV === 'production'
      ? readFileSync(join(__dirname, YAML_CONFIG_PRODUCTION), 'utf8')
      : readFileSync(join(__dirname, YAML_CONFIG_DEVELOPMENT), 'utf8'),
  ) as Record<string, any>;
  return config;
}
전역 모듈 선언
`app.module.ts`
추가로 글로벌 설정을 했습니다.
@Global()
@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      load: [ConfigurationYaml],
      envFilePath: [
        '.env.development',
        '.env.production',
        'development.yaml',
        'production.yaml',
      ],
    }),
  ],
})
export class AppModule {}
자동 내보내기 설정
`nest-cli.json`
{
  "$schema": "https://json.schemastore.org/nest-cli",
  "collection": "@nestjs/schematics",
  "sourceRoot": "src",
  "compilerOptions": {
    "deleteOutDir": true,
    "assets": [
      {
        "include": "./utils/config/*.yaml",
        "outDir": "./dist"
      },
      {
        "include": "./utils/config/*.env",
        "outDir": "./dist"
      }
    ]
  }
}
파일 위치 관련 `throw new Error('cant go up that far')` 오류

보통 `.env` 파일의 경우 최상위 디렉터리의 위치에 많이 있습니다. 그렇다 보니 `.yaml` 파일도 최상위 디렉터리에 놓게 되면 위 이미지와 같은 `throw new Error('cant go up that far')` 오류가 발생합니다. 그렇기 때문에 `NestJS`에서는 `src` 하위에 `.yaml` 파일이 있어야 합니다.
물론, 다른 방법도 있습니다. `package.json`에서 `cpx`를 통해서 파일을 복사할 수도 있습니다.
728x90
    
    
  사업자 정보 표시
  
        
                    
레플라 | 홍대기 | 경기도 부천시 부일로 519 화신오피스텔 1404호 | 사업자 등록번호 : 726-04-01977 | TEL : 070-8800-6071 | Mail : support@reafla.co.kr | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기
'NodeJS > NestJS' 카테고리의 다른 글
| [NestJS] SWC 사용시 "Cannot find module" 오류 해결하기 (0) | 2023.08.11 | 
|---|---|
| [NestJS] 프로젝트 구조 및 Controllers 파악하기 (0) | 2023.06.09 | 
| [NestJS] 표준모드와 모노레포 및 CLI 속성 살펴보기 (0) | 2023.06.07 | 
| [NestJS] NestJS CLI 시작 및 실행 명령어 보기 (0) | 2023.06.04 | 
 
                    
                   
                    
                   
                    
                  