我想访问前端(反应)中定义的一些环境变量。
我有以下设置:
create-react-app
)我尝试遵循https://medium.com/@trekinbami/using-environment-variables-in-react-6b0a99d83cf5#0618,但是它没有起作用,或者引发了任何错误。
webpack.config.js
const dotenv = require("dotenv");
module.exports = () => {
// call dotenv and it will return an Object with a parsed key
const env = dotenv.config().parsed;
// reduce it to a nice object, the same as before
const envKeys = Object.keys(env).reduce((prev, next) => {
console.log(prev)
prev[`process.env.${next}`] = JSON.stringify(env[next]);
return prev;
}, {});
return {
...,
plugins: [
new webpack.DefinePlugin(envKeys)
],
...
}
使用上述Webpack配置,我认为我应该能够在<h4>My var: {process.env.REACT_APP_MY_VAR}</h4>
中进行file.js
,当然我已经在项目中的REACT_APP_MY_VAR
文件中定义了.env
根。
以上,我希望file.js
呈现REACT_APP_MY_VAR
的值,但是我确实不呈现任何值或错误。
答案 0 :(得分:2)
为了简化配置,我建议使用dotenv-webpack
而不是dotenv
软件包。
4个简单步骤:-
1)使用
安装dotenv-wepack
npm install dotenv-webpack --save
2)在应用程序的根目录下创建.env
文件
API_URL=http://localhost:8000
3)将此添加到您的webpack配置文件中。
const Dotenv = require('dotenv-webpack');
module.exports = {
...
plugins: [
new Dotenv()
]
...
};
4)在应用程序中的任何位置使用环境变量。
import React from 'react';
const App = () => {
return (
<h1>{process.env.API_URL}</h1>
);
}
export default App;
希望有帮助!