javascript - 在本地插件(Strapi)中使用 .env
问题描述
我开发了一个Strapi 本地插件,但我无法检索在项目根目录下的 .env 文件中定义的变量。我尝试在我的 React 组件 ( plugins/myPluginName/admin/src/containers/HomePage/index.js
) 中加载这个值。
我尝试使用这样的全局流程模块:
process.env.my_variable
但它返回undefined
有任何想法吗 ?
解决方案
感谢strapi论坛上的@sunnyson,我找到了解决方案。默认情况下 .env 变量不会传递到客户端。您需要自定义 webpack 配置。
这样做:
/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;
},
};
- 在您的反应组件中,您可以像这样使用您的环境变量:
class HomePage extends React.Component {
constructor(props) {
this.state = {
env: { CUSTOM_VARIABLES }
}
logEnv() {
console.log(this.state.env.variable1)
}
}