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

如何从.yarnrc.yaml访问.env中声明的环境变量?

解决BUF_REGISTRY_TOKEN变量访问问题

Yarn 3 不会自动读取项目根目录的 .env 文件,所以你需要手动让环境变量生效,以下是几种可行方案:

方案一:使用dotenv-cli加载.env后执行命令

  1. 全局安装dotenv-cli:
npm install -g dotenv-cli

或者用Yarn本地安装:

yarn add -D dotenv-cli
  1. 执行安装命令时通过dotenv-cli加载.env:
dotenv -e .env yarn install

方案二:手动在shell中导出变量

在执行yarn install前,先导出环境变量:

export BUF_REGISTRY_TOKEN=ZZZZZZZ
yarn install

如果是Windows cmd环境,使用:

set BUF_REGISTRY_TOKEN=ZZZZZZZ
yarn install

PowerShell环境则使用:

$env:BUF_REGISTRY_TOKEN="ZZZZZZZ"
yarn install

方案三:在package.json中添加脚本

在项目的package.json里添加一个封装好的安装脚本,自动加载.env:

{
  "scripts": {
    "install:buf": "dotenv -e .env yarn install"
  }
}

之后执行:

yarn install:buf

额外注意:修正.yarnrc.yaml语法错误

你的.yarnrc.yaml中plugins部分存在缩进问题,第二个插件的配置没有正确嵌套,修正后如下:

nodeLinker: node-modules
plugins:
  - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
    spec: "@yarnpkg/plugin-workspace-tools"
  - path: .yarn/plugins/@yarnpkg/plugin-typescript.cjs
    spec: "@yarnpkg/plugin-typescript"

npmScopes:
  buf:
    npmAuthToken: ${BUF_REGISTRY_TOKEN}
    npmRegistryServer: "https://buf.build/gen/npm/v1/"

yarnPath: .yarn/releases/yarn-3.6.1.cjs

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:19