Разница между path.normalize и path.resolve в Node.js
В чем разница (если есть) между path.normalize(your_path)
и path.resolve(your_path)
?
Я знаю, что path.resolve(...)
может принимать несколько аргументов, но поведение с одним аргументом такое же, как вызов path.normalize()
?
EDIT: Если они должны вести себя одинаково, я не понимаю цели раскрытия функции path.normalize(...)
, когда вы можете просто пройти путь в path.resolve(...)
Или, может быть, это для целей документации. Например, они говорят в документации для path.resolve(...)
:
... Результирующий путь нормализуется и...
Воздействие path.normalize(...)
упрощает объяснение того, что означает "нормализованный"? Я не знаю.
Ответы
Ответ 1
path.normalize
Возвращает лишние .
, ..
и т.д. в пути. path.resolve
разрешает путь в абсолютный путь. Пример (мой текущий рабочий каталог был /Users/mtilley/src/testing
):
> path.normalize('../../src/../src/node')
'../../src/node'
> path.resolve('../../src/../src/node')
'/Users/mtilley/src/node'
Другими словами, path.normalize
: "Каков самый короткий путь, который я могу принять, который приведет меня к тому же месту, что и вход", а path.resolve
- "Каков мой пункт назначения, если я возьму этот путь".
Ответ 2
Из документов:
Другой способ думать о решении - это последовательность команд cd в оболочке.
Ссылки на path.resolve и path.normalize в документации. В основном я не хочу просто предоставлять ссылки в ответе, но документы Node.js очень приличные.