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

Meteor构建时如何在客户端代码中访问自定义环境变量

你当前看到的客户端process.env仅包含NODE_ENV和TEST_METADATA,是因为Meteor默认不会传递自定义环境变量到客户端,避免敏感信息意外泄露。你可以通过以下两种方案实现需求:

方案1:使用Meteor官方约定的环境变量前缀

Meteor默认会将所有以METEOR_PACKAGE_CONFIG_为前缀的环境变量暴露到客户端的process.env对象中,前缀会自动被移除,不需要额外配置:

  1. 构建前设置对应环境变量,示例:
# Linux/macOS 环境
export METEOR_PACKAGE_CONFIG_CLIENT=foo
# Windows 环境
set METEOR_PACKAGE_CONFIG_CLIENT=foo
  1. 代码中直接使用即可:
if(process.env.CLIENT === 'foo') {
  // 仅foo客户对应的逻辑
}
  1. 生产构建时Meteor会自动完成变量替换和死代码消除。

方案2:通过Babel插件自定义注入规则

如果你不想用官方前缀,或者需要更灵活的注入逻辑,可以使用babel-plugin-transform-inline-environment-variables插件实现自定义环境变量注入,用法和其他构建工具完全一致:

  1. 安装插件:
meteor npm install babel-plugin-transform-inline-environment-variables --save-dev
  1. 在项目根目录的.babelrc文件中添加配置:
{
  "plugins": [
    ["transform-inline-environment-variables", {
      "include": ["CLIENT", "THEME"] // 这里填写你需要暴露到客户端的环境变量列表
    }]
  ]
}
  1. 构建时设置对应环境变量即可正常使用。

注意事项

  • 不要将敏感信息(如密钥、内部接口地址)通过该方式暴露到客户端,所有注入到客户端的变量都会被打包到公开的前端代码中。
  • 必须使用meteor build的生产模式构建,才会触发死代码消除逻辑,开发模式下为了调试方便不会移除未使用的代码块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:24:03