Pembolehubah persekitaran Windows powershell dalam fail .env React-native?
P粉431220279
P粉431220279 2023-09-14 10:00:27
0
1
708

Saya mahu menggunakan alamat IP tempatan semasa yang diberikan dalam projek React Native saya.

Jadi saya mencipta fail skrip Powershell yang mencari alamat IP dan menyimpannya ke dalam pembolehubah sistem $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

Sekarang saya mahu lulus pembolehubah ini dalam fail .env projek saya.

Walaupun $npm_package_name berfungsi dengan baik, $npm_package_name工作正常,但$env:IPADDR似乎不起作用。输出结果不是评估先前定义的环境变量,而是变量文字文本本身,即 console.log(REACT_APP_API_URL) --> http://$env:IPADDR:3000/ 而不是评估的结果http://192.168.10.4:3000/ nampaknya tidak berfungsi. Hasil output bukanlah penilaian pembolehubah persekitaran yang ditakrifkan sebelum ini, tetapi teks literal pembolehubah itu sendiri, iaitu console.log(REACT_APP_API_URL) --> http://$env:IPADDR:3000/ sebaliknya daripada hasil penilaian http://192.168.10.4:3000/.

Fail .env saya dicipta seperti ini.

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

Jadi, apa salah saya? Bagaimana untuk menggunakan pembolehubah persekitaran PowerShell $env:IPADDR 动态评估 REACT_APP_API_URL untuk menilai REACT_APP_API_URL secara dinamik?

P粉431220279
P粉431220279

membalas semua(1)
P粉976737101

Saya mendapati bahawa tiada cara untuk bekerja dalam fail .env 文件中本地扩展 Windows 环境变量。相反,我扩展了 PowerShell 脚本,通过直接在 .env untuk "menggantikan" pembolehubah yang diperlukan.

Ini adalah fail skrip run.ps1 PowerShell yang terakhir.

#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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan