Verzeichnis, von dem node.js ausgeführt wurde

8

Ich habe ein Projekt, und ich starte es mit node main.js / make test usw. Ich brauche dieses Verzeichnis von einem Skript. Nicht nur von main.js , sondern auch von jedem Submodul. Ich habe versucht mit path plugin und __directory , aber ich bekomme einen Pfad der aktuellen Datei (zB Submodul). Ich probierte auch require('path').dirname(require.main.filename) , aber wenn ich make test starte, bekomme ich mocha dirname anstelle meines Projektverzeichnisses. Was ist der einfachste Weg, dies zu lösen?

    
ciembor 01.03.2013, 02:08
quelle

3 Antworten

26

process.cwd() liefert das.

    
JohnnyHK 01.03.2013, 02:10
quelle
5

__dirname gibt Ihnen den Pfad, in dem sich eine Datei befindet.

    
Pascal Belloncle 01.03.2013 02:11
quelle
0

require.cache speichert jedes geladene Modul und die zugehörigen importierten Werte, das übergeordnete Modul, die untergeordneten Module, den absoluten Dateipfad usw.

Ich glaube, dass jedes Modul dem Cache-Objekt mit seinem Dateipfad als Cacheschlüssel zugewiesen ist, aber Sie werden das wahrscheinlich überprüfen wollen, nur um sicherzugehen.

Wenn dies jedoch der Fall ist, gibt etwas so einfaches wie Object.keys(require.cache) Ihnen ein Array von Dateipfaden für alle Module. Dann parsen Sie einfach jeden Pfad nach Bedarf, um die Verzeichnisinformationen, die Sie suchen, aus jedem Modulpfad abzurufen.

    
Matthew C. Lewis 27.04.2017 21:23
quelle