You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.npmrc文件中使用.env环境变量?

能否在.npmrc中直接使用.env文件里的变量?

不行,npm本身不会自动读取.env文件中的变量并注入到.npmrc的环境变量替换中。.npmrc里的${变量名}语法,只会读取当前shell环境中已存在的变量,而.env文件的变量默认不会自动加载到shell环境里。

不过可以通过以下几种方式实现你的需求,避免每次手动export变量:

方法1:用dotenv-cli加载.env后执行npm命令

dotenv-cli是专门用来加载.env文件到环境变量的工具,步骤如下:

  1. 全局安装dotenv-cli:
    npm install -g dotenv-cli
    
  2. 执行npm命令时通过dotenv-cli加载.env:
    dotenv -e .env npm install
    
  3. 也可以把命令封装到package.json的scripts里,简化操作:
    {
      "scripts": {
        "install:private": "dotenv -e .env npm install"
      }
    }
    
    之后直接运行npm run install:private即可自动加载.env变量并执行安装。

方法2:写shell脚本封装安装命令

手动写一个shell脚本,先加载.env再执行npm install:

  1. 创建install.sh文件:
    #!/bin/bash
    # 开启自动导出变量
    set -a
    # 加载.env文件内容到当前环境
    source .env
    # 关闭自动导出
    set +a
    # 执行npm安装
    npm install
    
  2. 给脚本添加执行权限:
    chmod +x install.sh
    
  3. 运行脚本完成安装:
    ./install.sh
    

方法3:让shell自动加载项目目录的.env(本地开发专用)

如果是本地开发环境,可以配置shell的启动文件,让进入项目目录时自动加载.env:

  • 如果你用bash,编辑~/.bashrc文件,添加以下内容:
    if [ -f .env ]; then
      set -a
      source .env
      set +a
    fi
    
  • 如果你用zsh,编辑~/.zshrc文件,添加同样的内容。
  • 保存后重启shell,或者执行source ~/.bashrc(bash)/source ~/.zshrc(zsh)生效。之后进入项目目录直接运行npm install,shell会自动加载.env的变量。

注意事项

  • 务必将.env文件加入.gitignore,不要提交到版本控制,防止敏感信息泄露。
  • 如果是CI/CD环境,建议直接在平台的环境变量配置中设置token,不需要依赖.env文件。

内容的提问来源于stack exchange,提问作者Jinwoo Nam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:41:01