Nestjs系列配置config.yaml

Nestjs设置dev和prod环境区分

第一步

npm i --save @nestjs/config // 默认使用的包为 dotenv
npm i js-yaml
npm i -D @types/js-yaml
npm i cross-env

第二步

  • src下建立config/configuration.ts 设置yaml引入文件需要
  • src下建立enum/config.enum.ts 方便管理枚举

第三步

 // config/configuration.ts 
 @@filename(configuration)
import { readFileSync } from 'fs';
import * as yaml from 'js-yaml';
import { join } from 'path';
import { merge } from 'lodash';
// 配置文件名称
const YAML_CONFIG_FILENAME = 'config.yaml';
const YAML_CONFIG_ENV = `config.${process.env.NODE_ENV || 'development'}.yaml`; // 这里名称与第五步对应起来
// path
const filePath = yaml.load(
  readFileSync(join(__dirname, '../../config', YAML_CONFIG_FILENAME), 'utf8'),
) as Record<string, any>;
const envPath = yaml.load(
  readFileSync(join(__dirname, '../../config', YAML_CONFIG_ENV), 'utf8'),
);
// 合并文件
const mergePath = merge(filePath, envPath);
export default () => {
  return mergePath;
};

第四步

// 在app.Module使用
 @@filename(app.Module)
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import configuration from './config/configuration';
@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      load: [configuration],
    }),
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

第五步

// 在根目录设置config/config.yaml
// 在根目录设置config/config.production 
// 在根目录设置config/config.development
@@filename(config.yaml) //config.yaml 文件内容
db:
  mysql: 'localhost:3000'
  mongoose: 'localhost:4000'
// end config.yaml
@@filename(config.development.yaml) //config.developmen.yaml 文件内容
db:
  NODE_ENV: 'development'
// end config.development.yaml
@@filename(config.production.yaml) //config.developmen.yaml 文件内容
db:
  NODE_ENV: 'production'
// end config.production.yaml

最后

// 配置package.json环境区分
@@filename(package.json)
	"scripts":{
	 	"start:dev": "cross-env NODE_ENV=development nest start --watch",
 	 	"start:prod": "cross-env NODE_ENV=production node dist/main",
	}	  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值