Maison > Questions et réponses > le corps du texte
Je souhaite utiliser l'adresse IP locale actuelle donnée dans mon projet React Native.
J'ai donc créé un fichier de script Powershell qui trouve l'adresse IP et l'enregistre dans une variable système $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
Maintenant, je souhaite passer cette variable dans le fichier .env
de mon projet.
Bien que $npm_package_name
fonctionne bien, $npm_package_name
工作正常,但$env:IPADDR
似乎不起作用。输出结果不是评估先前定义的环境变量,而是变量文字文本本身,即 console.log(REACT_APP_API_URL) --> http://$env:IPADDR:3000/
而不是评估的结果http://192.168.10.4:3000/
ne semble pas fonctionner. Le résultat de sortie n'est pas l'évaluation de la variable d'environnement définie précédemment, mais le texte littéral de la variable lui-même, c'est-à-dire console.log(REACT_APP_API_URL) --> http://$env:IPADDR:3000/
à la place. du résultat de l'évaluation http://192.168.10.4:3000/
.
Mon .env
fichier est créé ainsi.
REACT_APP_API_URL=http://$env:IPADDR:3000/ REACT_APP_NAME=$npm_package_name
Alors, qu’est-ce que j’ai fait de mal ? Comment utiliser les variables d'environnement PowerShell $env:IPADDR
动态评估 REACT_APP_API_URL
pour évaluer dynamiquement REACT_APP_API_URL
?
P粉9767371012023-09-15 00:14:40
J'ai trouvé qu'il n'y avait aucun moyen de travailler dans le fichier .env
文件中本地扩展 Windows 环境变量。相反,我扩展了 PowerShell 脚本,通过直接在 .env
pour "remplacer" les variables requises.
Il s'agit du fichier de script final
#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