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

Strapi v3中如何将.env配置变量传入后台插件?

解决Strapi自定义插件无法获取.env环境变量的问题

问题根源

你当前的配置存在两个关键错误:

  1. DefinePlugin中定义的变量名带有多余空格('JUST_A_TEST '),和.env里的变量名JUST_A_TEST不匹配
  2. 没有用JSON.stringify()包裹环境变量值,webpack的DefinePlugin会直接将值替换到代码中,字符串类型的变量需要被转为字面量形式

正确配置步骤

1. 修正admin.config.js的webpack配置

// ./admin/admin.config.js
module.exports = ({ env }) => ({
  webpack: (config, webpack) => {
    config.plugins.push(
      new webpack.DefinePlugin({
        // 移除变量名的空格,并用JSON.stringify处理值
        'JUST_A_TEST': JSON.stringify(env('JUST_A_TEST')),
      })
    );
    return config;
  },
});

2. 在插件admin代码中访问变量

现在可以直接在插件文件中使用定义的变量:

// ./plugins/myplugin/admin/src/containers/HomePage/index.js
const test = JUST_A_TEST; // 现在可以正常获取到值

额外说明

如果需要将环境变量仅暴露给特定插件,也可以通过插件的原生配置传递:

  1. 在插件的strapi-server.js中读取环境变量并传递给admin端:
// ./plugins/myplugin/server/strapi-server.js
module.exports = ({ env }) => ({
  admin: {
    config: {
      justATest: env('JUST_A_TEST'),
    },
  },
});
  1. 在插件admin代码中通过strapi对象访问:
// ./plugins/myplugin/admin/src/containers/HomePage/index.js
const test = strapi.plugin('myplugin').config.justATest;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:35:53