Mamy projekt węzła, który nie wymaga naszych własnych submodułów z ścieżki względnej, ale zamiast tego należy ustawić zmienną środowiskową NODE_PATH
na lib
, aby znaleźć wszystkie submoduły.Ustawienie NODE_PATH z poziomu aplikacji NodeJS
Chciałem obsłużyć ten standardowy przypadek w kodzie źródłowym programu, ale wydaje się, że to już niemożliwe.
Znalazłem kilka rozwiązań, które nie działają zgodnie z oczekiwaniami.
module.paths.push("./lib");
sugerowano w innym artykule stackoverflow ale to powoduje komunikat o błędzie w nowszych wersjach węzeł i odnosi wywoływacz do korzystania NODE_PATH
.
Zamiast tego próbowałem wykonać następujące czynności jako pierwszą linię mojego programu.
process.env['NODE_PATH']="./lib";
ta nie powoduje komunikat o błędzie, ale to nie działa albo. Myślę, że ta zmienna jest odczytywana na początku aplikacji i nie jest odczytywana później, gdy żąda się czegoś.
process.env ['NODE_PATH'] = "./ lib" zastępuje zawartość NODE_PATH i nie dodaje do niej. Może to twój problem. jeśli użyjesz process.env ['NODE_PATH'] + = ": ./ lib" zamiast tego powinno działać – txwikinger
To, co widzę, to ustawienie programistyczne NODE_PATH działa w procesach roboczych, jeśli zostało ustawione w procesie nadrzędnym. Sam proces główny nie działa w ogóle. –