pet*_*gan 8 javascript environment-variables ecmascript-6 reactjs
我使用了一个app来引导它create-react-app.我有一个令牌,我不想推送给GitHub.
我跑了yarn add dontenv然后尝试将env变量导入我的App.js文件.
我的代码看起来像这样
.ENV
TOKEN=**************
Run Code Online (Sandbox Code Playgroud)
然后我的app.js文件看起来像这样:
app.js
import React from 'react';
import ReactDOM from 'react-dom';
require('dotenv').config();
const App = props => {
console.log(process.env.token);
return <p>Test</p>
}
Run Code Online (Sandbox Code Playgroud)
process.env.token是undefined.任何人都可以建议如何在前端使用溺爱或如何使用bootstrapped create-react-app来做到这一点?
Joe*_*lay 30
你不需要dotenv(我怀疑这个库无论如何都会在运行时在客户端应用程序中运行).
create-react-app实际上提供了开箱即用的功能,假设您正在使用react-scripts@0.5.0或更高.
步骤如下:
.env在项目的根目录中创建一个文件.REACT_APP_.process.env.第二位是重要的部分 - 为了避免你意外地暴露变量,create-react-app强迫你使用前缀作为一种说"是的,我知道我在做什么"的方式.
如果你不打算将文件推送到源代码控制(你不应该把它,如果它有秘密密钥!),那么使用.env.local文件更加惯用 - 但需要react-scripts@1.0.0或更高.
小智 8
- Create .env file in root folder
- Open to .env file
--> REACT_APP_API_KEY= API KEY
**NOTE** starting with the prefix REACT_APP_ (IMPORTANT)
- Access it use process.env
eg const {REACT_APP_API_KEY,REACT_APP_TEMPLATE_ID,REACT_APP_SERVICE_ID} = process.env
- And use with template string
eg emailjs.send(`${REACT_APP_SERVICE_ID}`,`${REACT_APP_TEMPLATE_ID}`, values, `${REACT_APP_API_KEY}` )
.then((response) => {
console.log('SUCCESS!', response.status, response.text);
}, (err) => {
console.log('FAILED...', err);
});
When you do any changes or need to create at .env file don't forget to restart
appliction "npm start"
Run Code Online (Sandbox Code Playgroud)
希望您会发现这很有帮助:)
对于任何不能让它工作的人,试试这个
如果你想让 git 忽略它,你可以创建一个.env.local文件,git 会忽略它。查看你的 .gitignore 文件,你会发现 `.env.local`
.env.local在您的根文件夹中创建文件.env.localREACT_APP_REACT_APP_BASE_URLprocess.env.REACT_APP_BASE_URL