2

Ich verwende create-react-app für mein React-Projekt (ausgeworfen), und ich habe einen Proxy in package.json konfiguriert. Aber ich möchte meine Anmeldeinformationen in dieser Datei nicht festgeschrieben haben. Also habe ich zu npm mit npm config set my_user xxxx hinzugefügt. Ich kann sie auch in meinem ~/.npmrc sehen.

"proxy": { 
    "/api/v3/": { 
    "target": "https://ourstagingserver.nl/", 
    "changeOrigin": true, 
    "ssl": false, 
    "secure": false, 
    "headers": { 
     "username": "$npm_config_my_user", 
     "password": "$npm_config_my_pass" 
    } 
    }, 

Dies funktioniert nicht. Der Benutzername und das Passwort werden nicht in den Proxy-Anfragen verwendet.

Aber wenn ich die "Skripte" hinzufügen:

"hello": "echo $npm_config_my_user $npm_config_my_pass 

und npm run hello läuft, beide hallen ...

Irgendwelche Ideen? Soll das funktionieren oder mache ich es falsch?

Thx! Gijs

Antwort

1

ich herausfinden, nicht die Verwendung von $npm_config_ Variablen für diesen Zweck aber ich habe löst das Problem der Verwendung von ENV Variablen für die Proxy-in erstellen reagieren-App:

In scripts/start.js (Linie 62, unten const proxySetting = require(paths.appPackageJson).proxy), fügen Sie diese:

proxySetting[Object.keys(proxySetting)[0]].headers.username = process.env.PROXY_USERNAME; 
proxySetting[Object.keys(proxySetting)[0]].headers.password = process.env.PROXY_PASSWORD; 

oder Sie könnten Schleife über die Objekte in proxySetting und legen Sie die Anmeldeinformationen für jedes Objekt in es, wenn Sie mehrere API Proxy haben:

Object.keys(proxySetting).forEach(function(proxy) { 
    proxySetting[proxy].headers.username = process.env.PROXY_USERNAME; 
    proxySetting[proxy].headers.password = process.env.PROXY_PASSWORD; 
}); 

Hinweis: scripts/start.js ist eine Datei, die von create-react-app

generiert wird
Verwandte Themen