React-native .env 檔案中的 Windows powershell 環境變數?
P粉431220279
P粉431220279 2023-09-14 10:00:27
0
1
693

我想在 React Native 專案中使用目前給定的本機 IP 位址。

因此,我建立了一個 Powershell 腳本文件,用於查找 IP 位址並將其儲存到系統變數 $env:IPADDR 中。

Write-Host "Getting current IP Address"
$env:IPADDR = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | where {$_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null}).IPAddress | Select-Object -First 1
Write-Host "    ---->" $env:IPADDR

現在我想在我的專案的 .env 檔案中傳遞這個變數。

雖然$npm_package_name工作正常,但$env:IPADDR似乎不起作用。輸出結果不是評估先前定義的環境變量,而是變數文字文字本身,即console.log(REACT_APP_API_URL) --> http://$env:IPADDR:3000/ 而非評估的結果http://192.168.10.4:3000/

我的 .env 檔案是這樣創建的。

REACT_APP_API_URL=http://$env:IPADDR:3000/
REACT_APP_NAME=$npm_package_name

那麼,我哪裡做錯了?如何使用 PowerShell 環境變數 $env:IPADDR 動態評估 REACT_APP_API_URL

P粉431220279
P粉431220279

全部回覆(1)
P粉976737101

我發現無法在 .env 檔案中本機擴充 Windows 環境變數。相反,我擴展了 PowerShell 腳本,透過直接在 .env 檔案中工作來「替換」所需的變數。

這是最終的 run.ps1 PowerShell 腳本檔。

#Find local IP addr and save it to $env:IPADDR variable
Write-Host "Getting current IP Address"
$env:IPADDR = (Get-WmiObject -Class Win32_NetworkAdapterConfiguration | where {$_.DHCPEnabled -ne $null -and $_.DefaultIPGateway -ne $null}).IPAddress | Select-Object -First 1
Write-Host "    ---->" $env:IPADDR

#Replace the value of the key [REACT_APP_API_URL] with the new server ie http://xxx.xxx.xxx.xxx:3000/
$regex = '(?<=REACT_APP_API_URL=)[^=]*'
$file = '.env'
$addr = 'http://' + $env:IPADDR + ':3000/'
(Get-Content $file) -replace $regex, $addr | Set-Content $file

#Start NPM script
npm run start
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板