path.resolve()和path.join()

path.resolve

  1. 返回结果是绝对路径,如果参数不能构成绝对路径,将使用当前工作目录
  2. 如果没有传入参数,则 path.resolve() 将返回当前工作目录的绝对路径
    工作目录:执行node命令时所在的目录


    image.png

也就是上图执行node命令mac$ 前面的路径,跟path.resolve()在哪个文件下没关系

  1. 如果参数里出现了/ 会把它当作根目录,并且忽略掉前面的路径,就像我们执行cd /a又执行cd /b 最终结果是/b
//在 /Users/mac/code/my/test 下执行node命令
path.resolve() // Outputs /Users/mac/code/my/test 
path.resolve('a') // Outputs /Users/mac/code/my/test/a
path.resolve('a','b') // Outputs /Users/mac/code/my/test/a/b
path.resolve('/a','b') // Outputs '/a/b'
path.resolve('/a','/b','c') // Outputs '/b/c'

path.join

使用平台特定分隔符将参数连接起来 windows是 \ 反斜杠 unix是正斜杠

path.join()  // Outputs  '.'
path.join('a') // Outputs  'a'
path.join('a','b') // Outputs  'a/b'
path.join('/a','b') // Outputs  '/a/b'

推荐阅读更多精彩内容