¿Cuál es la diferencia entre¿Cuál es la diferencia entre process.cwd() vs __dirname?
console.log(process.cwd())
y
console.log(__dirname);
que he visto ambos utilizados en contextos similares.
¿Cuál es la diferencia entre¿Cuál es la diferencia entre process.cwd() vs __dirname?
console.log(process.cwd())
y
console.log(__dirname);
que he visto ambos utilizados en contextos similares.
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
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
¿Significa esto que 'process.cwd()' es sinónimo de '.' para todos los casos excepto' require() '? –
@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