Ho qualche progetto, e lo eseguo con node main.js
/make test
ecc. Quello che mi serve è ottenere questa directory da uno script. Non solo da main.js
, ma anche da qualsiasi sottomodulo. Ho provato con il plugin path
e __directory
, ma ottengo un percorso del file corrente (ad esempio il sottomodulo). Ho anche provato require('path').dirname(require.main.filename)
, ma quando corro make test
ottengo mocha dirname al posto della mia directory di progetto. Qual è il modo più semplice per risolvere questo?Ottenere la directory da cui è stato eseguito node.js
8
A
risposta
26
process.cwd()
fornirà quello.
5
__dirname
fornisce il percorso in cui si trova un file.
0
require.cache
negozi ogni modulo caricato e dei suoi valori importati associati, modulo genitore, figlio moduli, percorso di file assoluto, ecc
credo che ogni modulo è assegnato all'oggetto della cache utilizzando il percorso del file come la chiave di cache, ma probabilmente vorrete ricontrollare questo, solo per essere sicuri.
Se questo è il caso, qualcosa di semplice come Object.keys(require.cache)
ti darà una serie di percorsi di file per tutti i moduli. Quindi analizza ogni percorso in base alle esigenze per recuperare le informazioni sulla directory che stai cercando da ogni percorso del modulo.
Perfetto! Grazie:) – ciembor