使用__dirname的path.join与path.resolve
同时 使用path.join
和path.resolve
和__dirname
来解析Node.js中的绝对路径是否有区别?
这样使用时,是否应该首选其中之一(绝对路径分辨率为用例的90%)?
即
const absolutePath = path.join(__dirname, some, dir);
与
const absolutePath = path.resolve(__dirname, some, dir);
两种方法都将路径标准化。
这不是 该问题的重复项,因为接受的答案是错误的。
回答:
是的,功能之间存在差异,但是在这种情况下,您使用它们的方式将产生相同的结果。
path.join
通过将两个路径合并在一起来返回规范化路径。它可以返回绝对路径,但不一定总是这样。
例如:
path.join('app/libs/oauth', '/../ssl')
决心 app/libs/ssl
path.resolve
另一方面,将解析为绝对路径。
例如,当您运行时:
path.resolve('bar', '/foo');
返回的路径将是/foo
因为这是可以构造的第一个绝对路径。
但是,如果您运行:
path.resolve('/bar/bae', '/foo', 'test');
返回的路径将/foo/test
再次出现,因为那是可以从右到左形成的第一个绝对路径。
如果未提供指定根目录的路径,则给该resolve
函数的路径将附加到当前工作目录中。因此,如果您的工作目录为/home/mark/project/
:
path.resolve('test', 'directory', '../back');
决心
/home/mark/project/test/back
使用__dirname
是包含源文件的目录的绝对路径。当您使用path.resolve
或时path.join
,如果您在下面给出相同的路径,它们将返回相同的结果__dirname
。在这种情况下,这实际上只是一个偏好问题。
以上是 使用__dirname的path.join与path.resolve 的全部内容, 来源链接: utcz.com/qa/414666.html