Next.js в основном поддерживает переменные среды, поэтому его можно использовать без установки или настройки отдельной библиотеки.
- Загрузить переменные среды с помощью .env.local
— NEXT_PUBLICEОтобразить переменные среды в браузере с помощью префикса
* Что такое переменные среды и зачем их использовать их?
Переменные среды относятся к переменным, которым можно передавать определенные значения (URL-адрес сервера или значения идентификатора других инструментов и т. д.) при выполнении приложения путем создания файла с именем .env. Основная причина его использования — соображения безопасности. Это связано с тем, что если в коде раскрывается определенное значение, то при взломе кода хакерами URL-адрес сервера или определенные значения, которые не установлены в качестве переменных среды, раскрываются вместе, что приводит к большему ущербу.
переменная среды
Источник примера
загрузить переменную среды
Файл .env.local обычно устанавливается в корневую папку при установке Next.js и используется для загрузки переменных среды. Вы можете загрузить переменные среды, написавprocess.env. (По умолчанию на большинстве хостинг-сайтов есть страница, на которой отдельно указан env, поэтому не забудьте установить ее и на хостинг-сайте). Поскольку файл .env.local по умолчанию записывается в файл .gitignore, он не загружен в репозиторий git.
.env.local
DB_HOST=localhost
DB_USER=myuser
DB_PASS=мойпароль
Это автоматически загружается в среду Node.js и делает переменныеprocess.env.DB_HOST,process.env.DB_USER иprocess.env.DB_PASS доступными для импорта данных Next.js и маршрутов API.
Например, getStaticProps. Его можно использовать с помощью
// страницы/index.js
экспортируем асинхронную функцию getStaticProps() {
const db = await myDB.connect({
хост: процесс .env.DB_HOST,
имя пользователя:process.env.DB_USER,
пароль:process.env.DB_PASS,
})
// …
}
Примечание. Ниже мы рассмотрим NEXT_PUBLIC, но если вы просто используете Process.env без NEXT_PUBLIC, он не будет работать на клиенте (браузере) (не определено). Обратите внимание, что переменные среды можно использовать без NEXT_PUBLIC только на стороне сервера (getStaticProps, getServerSideProps и т. д.).
Предоставление переменных среды браузеру (клиенту)
По умолчанию переменные среды доступны только в среде Node.js, поэтому они не доступны браузеру.
Например, чтобы открыть переменную для браузера, добавьте к ней префикс NEXT_PUBLIC_:
NEXT_PUBLIC_ANALYTICS_ID=abcdefghijk
Этот процесс.env.NEXT_PUBLIC_ANALYTICS_ID автоматически загружается в среду Node.js, поэтому вы можете использовать его в любом месте своего кода.
// страницы/index.js
импортируем setupAnalyticsService из '../lib/my-analytics-service'
// Здесь можно использовать 'NEXT_PUBLIC_ANALYTICS_ID' в виде префикса by 'NEXT_PUBLIC_'.
// Во время сборки он будет преобразован в `setupAnalyticsService('abcdefghijk')`.
setupAnalyticsService(process.env.NEXT_PUBLIC_ANALYTICS_ID)
function HomePage() {
return Hello World
экспортировать домашнюю страницу по умолчанию
Динамические запросы, такие как следующие, не являются встроенными:
// Это НЕ будет встроено, поскольку используется переменная
const varName = 'NEXT_PUBLIC_ANALYTICS_ID'
setupAnalyticsService(process.env)
/ / Это НЕ будет встроено, поскольку используется переменная
const env =process.env
setupAnalyticsService(env.NEXT_PUBLIC_ANALYTICS_ID)
Переменная среды по умолчанию
Обычно требуется только один файл .env.local. Однако в некоторых случаях вам может потребоваться добавить некоторые значения по умолчанию для среды разработки (следующая разработка) или рабочей среды (следующий запуск).
Next.js по умолчанию принимает .env (все среды), .env.development (среды разработки) и .env.production (среды разработки).
Для .env.local всегда установлено значение по умолчанию, переопределяющее любую другую среду (которая имеет приоритет).
Примечание. Файлы .env, .env.development и .env.production определяют значения по умолчанию, поэтому их необходимо включить в репозиторий. Файлы env*.local должны быть добавлены в ваш .gitignore, и в них вы можете хранить свои секреты.
Переменные среды в Vercel
Приложение Next.js При развертывании в Vercel в настройках проекта Можно настроить переменные среды. Здесь необходимо настроить все типы переменных среды. Переменные среды, используемые для разработки, также будут добавлены позже. Вы можете загрузить их на свое локальное устройство. Переменные среды разработки. Если вы настроили .env.local, вы можете импортировать эту переменную для использования на своем локальном компьютере с помощью следующей команды:
Vercel env pull .env.local
Порядок загрузки переменных среды
Переменные среды просматриваются в следующих местах по порядку, останавливаясь при обнаружении переменной.
-process.env
— .env.$(NODE_ENV).local
— .env.local( NODE_ENV не определяется при тестировании.)
< br /> — .env.$(NODE_ENV)
— .env
Например, если NODE_ENV находится в режиме разработки и вы определяете .env.development.local и .env , будет использоваться .env.development.local.
Официальный сайт Next.js