我正在使用fetch. 每次我不得不撰寫這個邏輯來確定我在哪個環境中時,我創建了一個 Utils 類,它回傳正確的基本 url:
export default class Utils {
static get baseUrl() {
const inDev = process.env.NODE_ENV !== 'production';
const { NEXT_PUBLIC_DEV_URL, NEXT_PUBLIC_PROD_URL } = process.env;
return inDev ? NEXT_PUBLIC_DEV_URL : NEXT_PUBLIC_PROD_URL;
}
}
但是現在我在加載組件時收到此錯誤:
ReferenceError: process is not defined
我環顧四周,發現我需要將我的變數標記為 NEXT_PUBLIC 所以我做了但問題仍然存在。處理這個問題的理想方法是什么?
uj5u.com熱心網友回復:
如果您想向客戶端公開 ENV 變數,您可以在 NextJS 配置 ( ) 中使用publicRuntimeConfignext.config.js。以下是您可以這樣做的方法:
publicRuntimeConfig: {
myEnvVar: process.env.MY_ENV_VAR
}
然后在檔案中你想使用你的 ENV 變數:
import getConfig from 'next/config';
const { publicRuntimeConfig } = getConfig();
const envVar = publicRuntimeConfig.myEnvVar // store in it a 'const' or do whatever you want with it,;
uj5u.com熱心網友回復:
你的班級實際上可以是這樣的:-
export default class Utils {
static get baseUrl() {
return process.env.NEXT_PUBLIC_URL;
}
}
該NEXT_PUBLIC前綴應為行內它們在構建時更換,發送到瀏覽器按值正常作業檔案。
在您的.env.development(或任何您的開發環境檔案稱為)檔案中,您可以NEXT_PUBLIC_URL指向http://localhost:8000并且在您的生產中,您可能會使用 GUI(如在 Netlify 或 Vercel 中)設定生產環境變數,因此NEXT_PUBLIC_URL可以有https://blablasite.com.
無論哪種方式,NEXT_PUBLIC前綴都將確保在構建時這些值在發送到瀏覽器之前被拾取和行內。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/401235.html
標籤:javascript 反应 下一个.js
上一篇:如何從json檔案中提取一些資料
