react-native .env文件中的Windows powershell环境变量?

5tmbdcev  于 2023-08-05  发布在  Shell
关注(0)|答案(1)|浏览(156)

我想在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

qhhrdooz

qhhrdooz1#

我发现没有办法在.env文件中本地扩展Windows环境变量。相反,我扩展了PowerShell脚本,通过直接在.env文件中工作来“替换”所需的变量。
下面是最终的run.ps1PowerShell 脚本文件。

#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

字符串

相关问题