2013-03-01 15 views
8

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

risposta

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.

Problemi correlati