在命令中指定环境变量信息,可用于指定不同的项目环境。cross-env 用于在命令中直接设置环境变量信息,dotenv 用于读取不同的 .env 文件。
cross-env
用于在命令中直接设置环境变量信息,配置少时使用,方便设置。
安装:
npm i -D cross-env
配置:
{
"scripts": {
"dev:start": "cross-env PROJ_ENV=local nodemon node ./build/main.js",
"start": "cross-env PROJ_ENV=tcloud node ./build/main.js"
}
}
在环境变量就可以读取到它们了:
console.log(process.env.PROJ_ENV)
dotenv 设置 env 文件
用于设置不同的 .env 文件,环境变量配置多,或者具有隐私要求(如存储数据库连接信息等)时可使用,把多个环境变量写在文件里。
安装 dotenv-cli 包:
npm i -D dotenv-cli
配置:
{
"scripts": {
"dev": "dotenv -e .env.dev ts-node-dev ./src/index.ts",
"prod": "dotenv -e .env.prod node ./dist/index.ts",
}
}
比如 env 文件里有一个 DATABASE_URL ,用于 prisma 的数据库连接。
设置后,在环境变量就可以读取到它了,prisma 也能读取到对应的配置。
console.log(process.env.DATABASE_URL)