Я развернул приложение для ремикса на Vercel. Кроме того, я определил некоторые переменные среды в Vercel и хочу выполнить некоторые проверки и использовать переменные env в своем приложении:
if (process.env.NODE_ENV === 'production') {
setPaths({
path: process.env.prod_path,
})
}
Выдает ошибку, process is not defined
. Я даже пытался добавить process &&
в оператор if
, не помогло.
Во-вторых, я не могу даже локально установить переменные env. Я следил за ремикс документы, но это дает мне undefined
каждый раз, когда я console.info
, как указано в документах.
Любое руководство/указатель на использование переменных среды в ремиксе было бы действительно полезным.
Я не уверен, но название функции (setXXX заставляет меня думать, что это установщик хука) заставляет меня думать, что вы пытаетесь использовать process.env в браузере, но process.env доступен только на сервере -side код, если вы хотите использовать переменные env в своем приложении для реагирования, вы можете использовать это руководство для отправки переменных со стороны сервера в ваше приложение для реагирования. Если этот код является кодом на стороне сервера, возможно, стоит воспроизвести его в stackblitz, чтобы мы могли лучше его рассмотреть.
Я смог решить эту проблему. Я использовал loader/useLoaderData для доступа к переменным среды на стороне сервера. Проблема заключалась в том, что я пытался вызвать их на уровне компонентов. По-видимому, мы можем вызывать их только на уровне маршрута.
Я перенаправлял их с помощью
loader
иuseLoaderData
, которые позволяют нам получить доступ к этим переменным env на стороне сервера. Я понял проблему. Очевидно, мы можем использовать loader/useLoaderData только на уровне маршрута. Я пытался сделать это на уровне компонентов.