linux下node.js环境变量配置核心是两件事:一是将node/npm路径加入path(如export path=$path:/usr/local/node/bin),使命令全局可用;二是通过dotenv管理应用级变量(如node_env、db_host),在代码中用process.env读取。

在 Linux 系统中为 Node.js 开发设置环境变量,核心是两件事:让系统能识别 node 和 npm 命令(即配置 PATH),以及让 Node.js 应用能读取自定义配置(如 NODE_ENV、数据库地址等)。两者层级不同,需分开处理。
一、配置 Node.js 可执行路径(PATH)
这是运行命令的基础。如果你是手动解压安装(比如从官网下载 .tar.xz 包),系统默认找不到 node 和 npm,必须把它们的 bin 目录加入 PATH。
- 确认 Node.js 的实际安装路径,例如:
/usr/local/node-v18.17.0-linux-x64/bin - 编辑当前用户的 shell 配置文件(推荐):
如果是 Bash:nano ~/.bashrc
如果是 Zsh(较新 Ubuntu/macOS 默认):nano ~/.zshrc - 在文件末尾添加一行:
export PATH=$PATH:/usr/local/node-v18.17.0-linux-x64/bin - 保存后立即生效:
source ~/.bashrc(或source ~/.zshrc) - 验证:
node -v和npm -v应正常输出版本号
二、设置应用级环境变量(如 NODE_ENV、API_KEY)
这类变量供你的 Node.js 代码通过 process.env 读取,不参与系统命令查找,建议用 dotenv 管理,避免硬编码和泄露风险。
- 安装依赖:
npm install dotenv --save - 在项目根目录创建
.env文件:NODE_ENV=development<br>DB_HOST=localhost<br>DB_PORT=5432
- 在应用入口文件(如
app.js或index.js)最顶部添加:require('dotenv').config(); - 之后即可使用:
console.log(process.env.DB_HOST); // 'localhost'
三、区分多环境(开发/测试/生产)
单靠一个 .env 不够灵活。推荐按环境拆分文件,并配合 cross-env 启动:
- 创建多个环境文件:
.env.development、.env.production、.env.example(用于团队模板) - 安装
cross-env:npm install cross-env --save-dev - 在
package.json中配置脚本:"scripts": {<br> "dev": "cross-env NODE_ENV=development node app.js",<br> "start": "cross-env NODE_ENV=production node app.js"<br>} - 在
app.js中动态加载对应文件:const env = process.env.NODE_ENV || 'development';<br>require('dotenv').config({ path: `.env.${env}` });
四、注意权限与生效范围
系统级环境变量(如写入 /etc/profile)对所有用户有效,但普通用户无权修改;用户级(如 ~/.bashrc)更安全常用。临时设置(export VAR=value)只在当前终端会话有效,关闭即失效。生产部署时,常通过进程管理器(如 PM2、systemd)在启动服务时注入环境变量,不依赖 shell 配置。











