VuePressVuePress
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
首页
  • 基础
  • UI
  • JavaScript
  • CSS
  • postcss
  • Vue3
  • Vue的设计与实现
  • 前端常用插件
  • PHP
  • Laravel
  • Linux
  • 线性代数
Category
AI
jiyun
Timeline
  • 常用命令

    • path.resolve
      • 语法
      • 工作原理
      • 示例
      • 总结
    • process.cwd

path.resolve

path.resolve() 是 Node.js 中 path 模块提供的方法,用于将一系列路径段解析为绝对路径。下面是其工作原理的详细分解:

语法

path.resolve([...paths])
  • ...paths:路径段序列。这些可以是相对路径,也可以是绝对路径。

工作原理

  • 绝对路径段:如果任何段是绝对路径,path.resolve() 则将丢弃所有先前的段并从该段开始。然后它将解析任何剩余的段。
  • 相对路径段:如果所有段都是相对路径,path.resolve() 则将从当前工作目录(process.cwd())开始并解析相对于它的路径。
  • 规范化路径..:通过删除多余的斜杠并解析(父目录)和(当前目录)引用来规范化生成的路径.。
  • 空路径段:如果没有提供路径段,path.resolve() 将返回当前工作目录的绝对路径。

示例

// 绝对路径段
const path = require('path');
console.log(path.resolve('/foo/bar', 'baz')); 
// Output: /foo/bar/baz
// 这里,/foo/bar是绝对路径,所以path.resolve()从它开始并附加baz。


// 相对路径段
const path = require('path');
console.log(path.resolve('foo', 'bar', 'baz')); 
// Output: /current/working/directory/foo/bar/baz
// 这里,foo、bar和baz是相对路径,因此 path.resolve() 从当前工作目录开始并构建路径。


// 结合绝对路径和相对路径
const path = require('path');
console.log(path.resolve('/foo/bar', 'baz', '..', 'qux')); 
// Output: /foo/bar/qux
// 在这种情况下,/foo/bar是绝对的,所以结果从它开始。然后附加baz和..(向上移动一个目录)并解析qux,结果是/foo/bar/qux。


// 无路径段
const path = require('path');
console.log(path.resolve()); 
// Output: /current/working/directory
// 没有参数时,path.resolve()返回当前工作目录的绝对路径。

总结

path.resolve() 是一种处理文件路径的强大方法,可确保您获得绝对路径,无论您是从相对段还是绝对段开始。它对于以跨平台方式构建路径特别有用,因为它可以处理操作系统之间的差异。

Last Updated:
Contributors: BaronYan
Next
process.cwd