node.js require Bibliothek Pfad Abrufen

Pfad einer von require referenzierten Bibliothek in Node.js abrufen

Zum Beispiel, welches Node-Paket referenziert das Node-Programm im aktuellen Verzeichnis? Es sollte das node_modules im aktuellen Verzeichnis sein, aber in einigen Fällen referenziert es die Standard-node_modules, die im Node-Pfad angegeben sind. In solchen Fällen führt selbst wenn Sie das Repository des aktuellen Verzeichnisses auf GitHub veröffentlichen, die in einer beliebigen Umgebung geklonte Ausführungsumgebung zu einem Paket-nicht-gefunden-Fehler.

Shou Arisaka
2 Min. Lesezeit
19. Nov. 2025

Zum Beispiel, welches Node-Paket referenziert das Node-Programm im aktuellen Verzeichnis? Es sollte das node_modules im aktuellen Verzeichnis sein, aber in einigen Fällen referenziert es die Standard-node_modules, die im Node-Pfad angegeben sind. In solchen Fällen führt selbst wenn Sie das Repository des aktuellen Verzeichnisses auf GitHub veröffentlichen, die in einer beliebigen Umgebung geklonte Ausführungsumgebung zu einem Paket-nicht-gefunden-Fehler.

z.B. Beispiel, bei dem das aktuelle Verzeichnis /mnt/c/pg/ ist, packages.json nicht definiert ist, aber der Standard-node_path /mnt/c/pg/node/ verwendet wird

/mnt/c/pg$ node
> require.resolve('express')
'/mnt/c/pg/node/node_modules/express/index.js'

z.B. Beispiel, bei dem express und moment das node_modules im aktuellen Verzeichnis referenzieren können, aber cors nicht gefunden wird, sodass der Standard referenziert wird

/mnt/c/pg/web/vue_dev$ node
> require.resolve('cors')
'/mnt/c/pg/node/node_modules/cors/lib/index.js'
> require.resolve('express')
'/mnt/c/pg/web/vue_dev/node_modules/express/index.js'
> require.resolve('moment')
'/mnt/c/pg/web/vue_dev/node_modules/moment/moment.js'

Darüber hinaus könnte es später Probleme verursachen, je nachdem, ob ein Paket lokal im aktuellen Verzeichnis installiert ist, als Abhängigkeit installiert und verwendet wird oder ob es ordnungsgemäß mit einer in packages.json angegebenen Version installiert ist.

Wenn express beispielsweise nicht in packages.json definiert ist, aber ./node_modules/express/index.js lokal referenziert werden kann, bedeutet dies, dass eine beliebige Version von express verwendet wird, die als Abhängigkeit eines anderen Pakets installiert wurde.

npm list -g | less
npm list | less

Es ist wichtig, npm list und andere Tools zu verwenden, um zu bestätigen, wo im Abhängigkeitsbaum es sich befindet, welche Version es ist und ob alle auf der obersten Ebene verwendeten Pakete in packages.json angegeben sind.

(Referenz)

In node.JS how can I get the path of a module I have loaded via require that is not mine (i.e. in some node_module) - Stack Overflow

Diesen Artikel teilen

Shou Arisaka 19. Nov. 2025

🔗 Links kopieren