使用 @nestjs/config
@nestjs/config 用于处理和管理配置的一个模块
cross-env 跨平台设置和使用环境变量的工具
npm i @nestjs/config cross-env
创建 .env , .env.dev , .env.prod
# .env
PORT = 8000
修改启动命令
"start": "cross-env RUNNING_ENV=dev nest start",
"start:dev": "cross-env RUNNING_ENV=dev nest start --watch",
"start:prod": "cross-env RUNNING_ENV=prod node dist/main",
在 app.module.ts 中进行全局配置
envFilePath值为 ['.env' , '.env.dev' , '.env.prod'] 的时候,读取配置优先级递减,不是覆盖
// 区分环境
import { ConfigModule } from '@nestjs/config';
export const IS_DEV = process.env.RUNNING_ENV === 'dev';
let envFilePath = ['.env'];
if (IS_DEV) {
envFilePath.unshift('.env.dev');
} else {
envFilePath.unshift('.env.prod');
}
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true, // 全局配置
envFilePath, // 优先级递减,不是覆盖
}),
LoginModule,
],
controllers: [AppController],
providers: [AppService],
})
使用端口
// main.ts
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const PORT = Number(process.env.PORT);
await app.listen(PORT); // 8000
}