以下调用之间有什么区别吗?
path.join(__dirname, 'app')
对比
path.resolve(__dirname, 'app')
应该首选哪一个?
原文由 helpermethod 发布,翻译遵循 CC BY-SA 4.0 许可协议
以下调用之间有什么区别吗?
path.join(__dirname, 'app')
对比
path.resolve(__dirname, 'app')
应该首选哪一个?
原文由 helpermethod 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.9k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
3 回答2k 阅读
1 回答3.3k 阅读
1 回答2.7k 阅读
这两个函数以非常不同的方式处理以
/
开头的段;join
只会将其与前一个参数连接,但是resolve
会将其视为根目录,并忽略所有先前的路径 - 将其视为执行的结果cd
对于每个参数:另一件需要注意的是
path.resolve
总是会产生一个绝对URL,并且会使用你的工作目录作为基础来解析这个路径。但是因为__dirname
无论如何都是绝对路径,这对你来说并不重要。至于你应该使用哪一个,答案是:这取决于你希望从
/
开始的段如何表现——它们应该简单地加入还是应该充当新的根?如果其他参数是硬编码的,那真的没关系,在这种情况下,您可能应该考虑(a)该行将来可能会如何变化以及(b)它与代码中的其他地方的一致性如何。