2012-03-26 19 views

Respuesta

284

process.cwd() devuelve el directorio de trabajo actual,

es decir, el directorio desde el que se invocó el comando node.

__dirname devuelve el nombre del directorio del directorio que contiene el archivo de código fuente de JavaScript

+4

¿Significa esto que 'process.cwd()' es sinónimo de '.' para todos los casos excepto' require() '? –

+6

@AlexanderGonchiy correcto, '.' es relativo a' process.cwd() '(también), excepto' require() 'que funciona en relación con el archivo de ejecución actual. Ver [aquí] (http://stackoverflow.com/a/16730379/927631) para más. – Dwelle

14

Como por nodo js doc process.cwd()

cwd es un método de objeto global process, devuelve un valor de cadena que es el actual directorio de trabajo del proceso Node.js

Como por nodo js nombre doc __dirname

El directorio del script actual como un valor de cadena. __dirname no es realmente global, sino local para cada módulo.

Voy a explicar con el ejemplo,

Supongamos que tenemos un archivo main.js reside en el interior C:/Project/main.js y funcionando node main.js estos dos valores vuelven mismo archivo

o simplemente con estructura de carpetas siguiente

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 

supongamos que tenemos otro archivo script.js archivos dentro de un subdirectorio del proyecto es decir C:/Project/lib/script.js y funcionando node main.js que requieren 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 
Cuestiones relacionadas