我正在使用 heroku 來部署 nodejs 后端,并使用 amazon s3 來部署 React 應用程式的靜態檔案,因此存盤在 s3 存盤桶上的前端向 heroku 后端發出請求。
一旦我為 heroku 創建了我的暫存環境,我只需要創建一個新的存盤桶并連接新的 url,以便暫存前端可以正確地向暫存后端發出請求,我最終在我的反應應用程式上得到了這樣的東西:
// index.js
let BASE_API_URL;
if (process.env.NODE_ENV === "production") {
BASE_API_URL = "https://myproductionapiurl.com";
else if (process.env.NODE_ENV === "staging") {
BASE_API_URL = "https://mystagingapiurl.s3-website.us-east-2.amazonaws.com";
} else {
BASE_API_URL = "https://someotherurl.com";
}
axios.defaults.baseURL = BASE_API_URL;
但是后來我注意到 s3 作為保存靜態檔案的服務沒有辦法設定環境變數,所以我無法根據process.env.NODE_ENV發出請求的 url指定,我被卡住了。
現在我只是對 url 進行硬編碼,所以它可以作業,但是一旦我嘗試合并登臺和生產環境,git 沖突總是會出現,有什么辦法可以使用 amazon s3 存盤桶來做到這一點并做出反應?
uj5u.com熱心網友回復:
感謝@jonrsharpe,我能夠讓它作業,因為我使用的是react,而不是使用NODE_ENV(它不能被覆寫)我使用了REACT_APP_ENV,我在運行構建之前將它設定為環境變數:
REACT_APP_ENV=staging npm run build
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352760.html
