一、安装所需依赖
pnpm add dotenv
二、设置package.json
先配置脚本设置对应环境变量NODE_ENV
{
"name": "admin-node-ts",
"version": "1.0.0",
"description": "API",
"main": "./main.ts",
"scripts": {
"dev": "set NODE_ENV=development && ts-node-dev --respawn ./main.ts",
"dev:sit": "set NODE_ENV=sit && ts-node-dev --respawn ./main.ts",
"dev:uat": "set NODE_ENV=uat && ts-node-dev --respawn ./main.ts",
"dev:prod": "set NODE_ENV=production && ts-node-dev --respawn ./main.ts",
},
...
}
三、定义ts (可选)
根目录新增env.d.ts
文件
declare namespace NodeJS {
interface ProcessEnv {
NODE_ENV: "development" | "production" | "sit" | "uat";
DB_HOST: string;
DB_DATABASE: string;
DB_USERNAME: string;
DB_PASSWORD: string;
DB_PORT: string;
THIRD_PARTY_SERVICES: string;
}
}
并在tsconfig.json
文件导入新增文件
{
"include": [
"env.d.ts"
],
四、配置环境变量文件
新增env
目录并分别新建所需环境文件
例如
.env.sit
NODE_ENV=sit
DB_HOST=110.xx.xx.xx
DB_DATABASE=database
.env.uat
NODE_ENV=uat
DB_HOST=110.xx.xx.xx
DB_DATABASE=database
.env.prod
NODE_ENV=production
DB_HOST=110.xx.xx.xx
DB_DATABASE=database
五、引入变量文件
在main.ts
文件首行新增
import * as dotenv from "dotenv";
dotenv.config({ path: `env/.env.${process.env.NODE_ENV}`.replace(/\s/g, "") });
执行完以上操作,编译即可获取对应环境的变量值~