You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何path.resolve传字符串参数输出绝对路径,传变量则输出相对路径?

问题:为何absoluteWithStrings输出绝对路径,但absoluteWithVars却输出相对路径?

示例代码

const path = require('path')

const file = path.join('/content', 'subfolder', 'first.txt')

const absoluteWithStrings = path.resolve(__dirname, 'content', 'subfolder', 'first.txt')
const absoluteWithVars = path.resolve(__dirname, file)

console.log(file)
console.log(absoluteWithStrings)
console.log(absoluteWithVars)

原因解释

核心是path.resolve的解析规则:它从右往左处理参数,一旦遇到以斜杠开头的绝对路径片段,就会直接以这个片段作为最终路径,忽略前面所有参数。

具体到代码逻辑:

  • file通过path.join生成的结果是/content/subfolder/first.txt,这是一个绝对路径(开头带斜杠)。
  • 执行path.resolve(__dirname, file)时,resolve优先识别右侧的file为绝对路径,直接返回它,完全跳过了前面的__dirname。
  • 而absoluteWithStrings的参数都是相对路径片段(content、subfolder等无前置斜杠),所以resolve会将它们与__dirname拼接成完整的绝对路径。

内容的提问来源于stack exchange,提问作者brunshte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:11:27