2012-03-26 17 views

risposta

284

process.cwd() restituisce la directory di lavoro corrente,

vale a dire la directory da cui sono stati richiamati il ​​comando node.

__dirname restituisce il nome della directory che contiene il file di codice sorgente JavaScript

+4

significa che 'process.cwd()' è sinonimo di '.' per tutti i casi tranne per' require() '? –

+6

@AlexanderGonchiy correct, '.' è relativo a' process.cwd() '(anche a questo), ad eccezione di' require() 'che funziona relativamente al file di esecuzione corrente. Vedi [qui] (http://stackoverflow.com/a/16730379/927631) per ulteriori informazioni. – Dwelle

14

Come per nodo js doc process.cwd()

cwd è un metodo di oggetto globale process, restituisce un valore stringa che è l'attuale directory di lavoro del processo Node.js.

Come per nodo js nome doc __dirname

La directory di script corrente come valore stringa. __dirname non è in realtà un globale ma piuttosto locale per ogni modulo.

Mi spiego con l'esempio,

Supponiamo di avere un file main.js risiede all'interno C:/Project/main.js e funzionante node main.js entrambi questi valori ritornano stesso file

o semplicemente con seguente struttura di cartelle

Project 
├── main.js 
└──lib 
    └── script.js 

main.js

console.log(process.cwd()) 
// C:\Project 
console.log(__dirname) 
// C:\Project 
console.log(__dirname===process.cwd()) 
// true 

supponiamo di avere un altro file script.js file all'interno di una sottodirectory di progetto cioè C:/Project/lib/script.js e funzionante node main.js che richiedono script.js

main.js

require('./assets/script.js') 
console.log(process.cwd()) 
// C:\Project 
console.log(__dirname) 
// C:\Project 
console.log(__dirname===process.cwd()) 
// true 

script.js

console.log(process.cwd()) 
// C:\Project 
console.log(__dirname) 
// C:\Project\lib 
console.log(__dirname===process.cwd()) 
// false 
Problemi correlati