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?
__dirname
gibt Ihnen den Pfad, in dem sich eine Datei befindet.
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.
Tags und Links javascript node.js directory path pwd