16
Chcę ustawić zmienną środowiskową podczas uruchamiania programu przez child_process.exec
. czy to możliwe?Zmienna środowiskowa zestawu NodeJS dla exec
Próbowałem ustawienie env
takiego:
exec('FOO', {'FOO': 'ah'}, function(error, stdout, stderr) {console.log(stdout, stderr, error);});
ale otrzymany komunikat powiedział FOO nie istnieje.
Każdy użytkownik powinien to wziąć pod uwagę, że określenie zmiennych środowiskowych w ten sposób zastępuje zestaw _entire_ zmiennych środowiskowych, w tym * * każdej 'PATH' które mogłyby istnieć. Tak więc, jeśli spróbujesz ustawić zmienną env i nagle dostaniesz błędy dotyczące polecenia, które próbujesz nie znaleźć, to właśnie dlatego. To nie jest wcale jasne z dokumentacji i zostawiłem mi trochę drapania głowy. Jeśli chcesz dodać zmienne env i pozostawić platformę-agnostyczną, możesz zrobić kopię 'process.env', zastosować zmiany do tej i przekazać ją do' child_process.exec'. – DanielSmedegaardBuus
Można również zaktualizować direclty 'process.env'. Przykład: 'process.env [" PATH "] + = ścieżka.delimiter + process.cwd() + ścieżka.sep +" node_modules "+ ścieżka.sep +" .bin "' – mems