path.join和path.resolve

path.resolve && path.join

path.join

path.join方法仅仅是为了合并提供的路径片断,不关心参数是相对路径('./'、'../')仍是绝对路径('/'),合并同时会对路径进行格式化。javascript

const path = require('path')
  
  path.join('/a', 'b', 'c')      => '/a/b/c'
  path.join('/a', '/b', '//c')   => '/a/b/c'
  path.join('/a', 'b', '/c')     => '/a/b/c'
  
  path.join('/a', '../b', '/c')  => '/b/c'
  

复制代码

path.resolve

老是返回绝对路径。 会根据提供的最后一个参数朝前查找, 直至找到绝对路径。 若是最后一个参数为绝对路径,则直接返回最后一个参数。 同时它也会合并相对路径而且格式化处理。java

path.resolve('/a', '/b')     => '/b'
path.resolve('/a', './b')    => '/a/b'

// 一样也会作格式化处理
path.resolve('/a', '../c')   => '/c'

复制代码

注意:当提供的参数中全是相对路径时,会合并这些相对路径,并将***运行目录***的绝对路径拼接在前面。注意是运行目录并非文件所在目录ui

// 假设在/user/somebody/存在test目录
// 文件 test/inner/index.js

path.resolve('./aa')

// 在test目录下执行时, 会返回/user/somebody/test/aa,
// 在inner目录下执行时,会返回/user/somebody/test/inner/aa

复制代码
相关文章
相关标签/搜索