nodejs node example current __dirname node.js path

node.js - node - npm path



Diferencia entre path.normalize y path.resolve en Node.js (2)

¿Cuál es la diferencia (si existe) entre path.normalize(your_path) y path.resolve(your_path) ?

Sé que path.resolve(...) puede aceptar múltiples argumentos, pero ¿el comportamiento con un solo argumento es lo mismo que llamar a path.normalize() ?

EDITAR: Si se supone que deben comportarse de la misma manera, no entiendo el propósito de exponer la función path.normalize(...) cuando simplemente puedes pasar el camino a path.resolve(...) O, tal vez , es para fines de documentación. Por ejemplo, dicen en la documentación de path.resolve(...) :

... La ruta resultante está normalizada, y ...

Exponer el path.normalize(...) hace que sea más fácil explicar qué significa "normalizado" ??? No se.


De los documentos:

Otra forma de pensar en la resolución es como una secuencia de comandos de CD en un shell.

Enlaces a path.resolve y path.normalize en la documentación. En general, no quiero solo proporcionar enlaces en una respuesta, pero los documentos de Node.js son muy decentes.


path.normalize deshace del extra . , .. , etc. en el camino. path.resolve resuelve una ruta en una ruta absoluta. Ejemplo (mi directorio de trabajo actual era /Users/mtilley/src/testing ):

> path.normalize(''../../src/../src/node'') ''../../src/node'' > path.resolve(''../../src/../src/node'') ''/Users/mtilley/src/node''

En otras palabras, path.normalize es "¿Cuál es el camino más corto que puedo tomar que me lleve al mismo lugar que la entrada?", Mientras que path.resolve es "¿Cuál es mi destino si tomo este camino?".