Mam projekt i uruchamiam go z node main.js
/make test
itd. Potrzebuję uzyskać ten katalog ze skryptu. Nie tylko z main.js
, ale także z dowolnego submodułu. Próbowałem z wtyczką path
i __directory
, ale otrzymałem ścieżkę bieżącego pliku (na przykład moduł pomocniczy). Próbowałem także require('path').dirname(require.main.filename)
, ale kiedy uruchamiam make test
, otrzymuję nazwę mocha dirname zamiast mojego katalogu projektu. Jaki jest najłatwiejszy sposób rozwiązania tego problemu?Pobieranie katalogu, z którego wykonywano plik node.js
8
A
Odpowiedz
26
process.cwd()
zapewni to.
5
__dirname
podaje ścieżkę do pliku.
0
require.cache
przechowuje każdy załadowany moduł i towarzyszące jej wartości importowanych, moduł nadrzędny, Moduły dziecięce, bezwzględna ścieżka pliku itp
wierzę, każdy moduł jest przypisany do obiektu cache przy użyciu jego ścieżki pliku jako klucz pamięci podręcznej, ale prawdopodobnie będziesz chciał to dokładnie sprawdzić, aby się upewnić.
Jeśli tak jest, to coś tak prostego, jak Object.keys(require.cache)
da ci tablicę ścieżek plików dla wszystkich modułów. Następnie przeanalizuj każdą ścieżkę w razie potrzeby, aby pobrać informacje o katalogu, których szukasz, ze ścieżki każdego modułu.
Idealnie! Dzięki:) – ciembor