설정 파일 만들기
저는 `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 |