Разница между путями.нормализовать и путь.разрешить в узле.js
в чем разница (если есть) между path.normalize(your_path)
и path.resolve(your_path)
?
Я знаю path.resolve(...)
может принимать несколько аргументов, но является ли поведение с одним аргументом таким же, как вызов path.normalize()
?
EDIT: если они должны вести себя так же, я не понимаю цель разоблачение path.normalize(...)
функция, когда вы можете просто передать путь в path.resolve(...)
или, может быть, это для целей документации. Например, говорят в документации ибо path.resolve(...)
:
... Полученный путь нормализуется, И...
разоблачение path.normalize(...)
облегчает объяснение того, что означает" нормализованный"??? Я не знаю.
2 ответа:
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
"что-это моя цель, если я возьму этот путь."обратите внимание, однако, что
path.normalize()
и много более контекстно-независимым, чемpath.resolve()
. Имелpath.normalize()
был контекст- dependent (т. е. если бы он учитывал текущий рабочий каталог), результат в приведенном выше примере был бы../node
, потому что это самый короткий путь, который можно было бы взять от/Users/mtilley/src/testing
до/Users/mtilley/src/node
.как ни странно, это означает, что
path.resolve()
создает относительный путь в абсолютных терминах (вы можете выполнить его в любом месте, и он даст тот же результат), тогда какpath.normalize()
производит абсолютный путь в относительный условия (вы должны выполнить его в пути, относительно которого вы хотите вычислить абсолютный результат).
документы:
другой способ думать о разрешении - это последовательность команд cd в оболочке.
ссылки путь.решите и путь.нормализовать в документации. Я в основном не хочу просто предоставлять ссылки в ответе, но узел.JS docs очень приличные.