What is the difference (if any) between
path.resolve(...) can accept multiple arguments, but is the behavior with a single argument the same as calling
EDIT: If they are supposed to behave the same way, I don't understand the purpose of exposing the
path.normalize(...) function when you can simply pass the path into
path.resolve(...) Or, maybe, it's for documentation purposes. For example, they say in the documentation for
... The resulting path is normalized, and ...
path.normalize(...) makes it easier to explain what "normalized" means??? I dunno.
path.normalize gets rid of the extra
.., etc. in the path.
path.resolve resolves a path into an absolute path. Example (my current working directory was
> path.normalize('../../src/../src/node') '../../src/node' > path.resolve('../../src/../src/node') '/Users/mtilley/src/node'
In other words,
path.normalize is "What is the shortest path I can take that will take me to the same place as the input", while
path.resolve is "What is my destination if I take this path."
Note however that
path.normalize() is much more context-independent than
path.normalize() been context-dependent (i.e. if it had taken into consideration the current working directory), the result in the example above would've been
../node, because that's the shortest path one could take from
Ironically, this means that
path.resolve() produces a relative path in absolute terms (you could execute it anywhere, and it would produce the same result), whereas
path.normalize() produces an absolute path in relative terms (you must execute it in the path relative to which you want to calculate the absolute result).