顺便说一下,foo
和bar
将是字符串文字
我见过一堆同时使用"foo/bar"
和"foo", "bar"
我使用以下代码与benchmark js进行了基准测试(我还制作了gist)
suite.add('foo/bar', function() {
path.join(__dirname, 'foo/bar')
})
.add('foo, bar', function() {
path.join(__dirname, 'foo', 'bar')
})
.on('complete', function() {
console.log('Fastest is ' + this.filter('fastest').map('name'));
})
.run({ 'async': true });
foo/bar
速度更快。但我仍然看到很多像path.join(__dirname, '..', '..', 'node_modules')
那么有没有理由使用path.join(__dirname, 'foo', 'bar')
?
我也在谈论path.resolve
答案 0 :(得分:2)
使用path.join()
有三个主要好处。
它会自动检查尾随分隔符,因此在结果路径中永远不会有两个分隔符。
它会自动使用特定于平台的路径分隔符(在Windows上为反斜杠)。
使用上述逻辑加入细分后,它会对路径进行规范化,解析所有.
或..
细分。
因此,当您需要任何此功能时,可以使用path.join()
。如果您不需要任何这些功能,那么您可以采用任何一种方式(使用您自己的手动路径构建或使用path.join()
)。