Вам не нужно «устанавливать / требовать» dotenv. Если вы используете create-реакции-приложение, эта функция доступна без дополнительной установки.
Вы указываете, что .env
находится в вашем корне, но я подозреваю, что на самом деле это не может быть в вашем корне. Судя по вашему описанию, это звучит так, как если бы он был в вашей корневой папке source , но файл .env
находится в корневом каталоге вашего приложения (то есть в том же каталоге, что и ваш файл package.json
).
Вот CodeSandbox (с использованием create-реагировать-приложение), который демонстрирует использование переменной среды во вложенном файле:
Содержимое этой песочницы включает в себя:
.env
(в том же каталоге, что и ваш файл package.json
)
REACT_APP_MYVAR=Here is my value for REACT_APP_MYVAR
src/index.js
import React from "react";
import ReactDOM from "react-dom";
import View from "./views/View";
function App() {
return <View />;
}
const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
src/views/View.js
import React from "react";
const View = () => {
return <div>My Var: {process.env.REACT_APP_MYVAR}</div>;
};
export default View;
Результат рендеринга:
My Var: вот мое значение для REACT_APP_MYVAR
Переменная окружения может использоваться в любом из исходных файлов js независимо от уровня вложенности.
Если это не помогло с вашей проблемой, пожалуйста, покажите точное содержание ваших .env
и view.js
.