3 min read

Node.js命令行中添加多个环境变量的完整指南

Node.js命令行中添加多个环境变量的完整指南

Node.js命令行中添加多个环境变量的完整指南

在Node.js开发中,我们经常需要为命令行脚本设置多个环境变量。当你看到这样的命令:

NEXT_PUBLIC_REGION=CN node scripts/publish.js

你可能会问:如何为这个命令添加多个环境变量?本文将为你详细介绍几种实用的方法。

方法1:直接在命令前添加(推荐,简单直接)

在命令行中设置环境变量时,可以连续添加多个环境变量,只需用空格分隔。每个环境变量的格式为 KEY=VALUE

NEXT_PUBLIC_REGION=CN NEXT_PUBLIC_API_URL=https://api.example.com NODE_ENV=production node scripts/publish.js

注意:如果环境变量的值包含空格,应该用引号括起来:
NEXT_PUBLIC_REGION=CN GREETING="Hello World" node scripts/publish.js

方法2:使用 export 设置环境变量(当前会话有效)

如果你希望环境变量在当前终端会话中持续有效,可以使用 export 命令:

export NEXT_PUBLIC_REGION=CN
export NEXT_PUBLIC_API_URL=https://api.example.com
export NODE_ENV=production
node scripts/publish.js

方法3:使用 .env 文件(推荐用于多个变量)

当环境变量较多时,使用 .env 文件是最佳选择。首先创建 .env 文件:

# .env 文件内容
NEXT_PUBLIC_REGION=CN
NEXT_PUBLIC_API_URL=https://api.example.com
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@localhost:5432/db

然后使用 dotenv-cli 工具:

# 首先安装 dotenv-cli
npm install -g dotenv-cli

# 使用
dotenv -e .env node scripts/publish.js

或者使用 env-cmd:

# 安装 env-cmd
npm install -g env-cmd

# 使用
env-cmd -f .env node scripts/publish.js

方法4:从文件读取环境变量

你可以将环境变量保存到一个文件中,然后一次性加载:

# 创建环境变量文件
echo "NEXT_PUBLIC_REGION=CN" > env.list
echo "NEXT_PUBLIC_API_URL=https://api.example.com" >> env.list
echo "NODE_ENV=production" >> env.list

# 使用
env $(cat env.list) node scripts/publish.js

方法5:使用 shell 脚本

创建 run-publish.sh 文件:

#!/bin/bash
export NEXT_PUBLIC_REGION=CN
export NEXT_PUBLIC_API_URL=https://api.example.com
export NODE_ENV=production
node scripts/publish.js

然后运行:

chmod +x run-publish.sh
./run-publish.sh

Windows 系统的特殊说明

Windows 用户注意:在 Windows 的命令提示符中,设置多个环境变量的语法不同,需要使用 set 命令,并且用 && 连接:

set NEXT_PUBLIC_REGION=CN && set ANOTHER_VAR=value && node scripts/publish.js

但是在 Unix-like 系统(如 Linux 和 macOS)中,使用前面提到的空格分隔的方法。

针对 Next.js 的特殊说明

对于 Next.js 项目,需要注意以下几点:

  • NEXT_PUBLIC_ 前缀的变量会在构建时被内联到客户端代码中
  • 普通的环境变量只在服务器端可用
  • 生产环境建议使用平台提供的环境变量配置

推荐方案

开发环境:使用方法1(直接在命令前添加)或方法3(.env文件)

生产环境:使用服务器平台的环境变量配置(如 Vercel、Netlify、Docker 等)

例如在 Vercel 上,你可以在项目设置中直接配置环境变量,无需在命令中指定。

总结

选择哪种方法取决于你的具体需求:

  • 临时使用:方法1最简单直接
  • 开发阶段:方法3(.env文件)最方便管理
  • 自动化部署:方法5(shell脚本)或平台配置
  • Windows 环境:使用 set 命令和 && 连接

记住,环境变量的设置只在当前命令或会话中有效。如果需要永久设置,可以考虑将它们写入到操作系统的环境变量中或使用项目管理工具提供的配置功能。