recherche

Maison  >  Questions et réponses  >  le corps du texte

Variables d'environnement Windows PowerShell dans le fichier React-native .env ?

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 .envfichier 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粉431220279P粉431220279435 Il y a quelques jours688

répondre à tous(1)je répondrai

  • P粉976737101

    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 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
    

    répondre
    0
  • Annulerrépondre