首页 > 解决方案 > 在本地插件(Strapi)中使用 .env

问题描述

我开发了一个Strapi 本地插件,但我无法检索在项目根目录下的 .env 文件中定义的变量。我尝试在我的 React 组件 ( plugins/myPluginName/admin/src/containers/HomePage/index.js) 中加载这个值。

我尝试使用这样的全局流程模块:

process.env.my_variable

但它返回undefined

有任何想法吗 ?

标签: javascriptnode.jsreactjsstrapi

解决方案


感谢strapi论坛上的@sunnyson,我找到了解决方案。默认情况下 .env 变量不会传递到客户端。您需要自定义 webpack 配置

这样做:

  1. /admin在项目的根目录下创建一个文件夹,然后创建一个admin.config.js.
module.exports = {
  webpack: (config, webpack) => {
    // Add your variable using the DefinePlugin function
    config.plugins.push(
      new webpack.DefinePlugin({
        // ENVS that you want to use in frontend
        CUSTOM_VARIABLES: {
          variable1: JSON.stringify(process.env.variable1),
        },
      })
    );
    // Return the modified config
    return config;
  },
};
  1. 在您的反应组件中,您可以像这样使用您的环境变量:
class HomePage extends React.Component {

 constructor(props) {
   this.state = {
   env: { CUSTOM_VARIABLES }
   }

  logEnv() {
  console.log(this.state.env.variable1)
  }

}

推荐阅读