electron程序,如何理解path.jon 和 path.resolve的区别?
发布于 作者:苏南大叔 来源:程序如此灵动~
electron的开发过程中,经常会碰到路径处理的问题。那么不可避免的就会用到path.join()和path.resolve()等函数。这两个函数究竟有什么样的差别呢?这就是本文中,所探讨的问题。

当然,在实际应用中,这两个函数,经常搭配的__dirname和__statcic已经在上一篇文章中,苏南大叔进行过了讲述,具体链接见文末。本文的测试环境是:win10下的electron-vue。同时,您可能需要下面的代码,否则可能收到path is not defined的错误提示。
const path = require("path")path.join
path.join根据参数的变化而变化,参数是绝对地址,返回的就是绝对地址,参数是相对地址,返回的也是相对地址。举个例子来说的话,比如:在electron-vue项目中,下面的这条语句。
console.log(path.join(__dirname,"./test"))调试模式下,因为__dirname是相对地址,所以,path.join()的结果也是相对地址。
生产模式下,因为__dirname是绝对地址,所以,path.join()的结果也是绝对地址。
path.resolve
path.resolve恒定返回绝对地址。比如:在electron-vue项目中,下面的这条语句:
console.log(path.resolve(__dirname,"./test"))无论是在调试模式还是生产模式下,path.resolve()的结果恒定为绝对地址。
相关链接
总结
和php的类似函数realpath()函数相比较的话,node里面的path.resolve()的效果,是更为接近的。
php的realpath()会检测最终路径是否真实存在,不存在的话,是会返回false的。path.resolve()是并不会检测对应路径是不是真实存在的,只是简单的返回个绝对路径。路径是否有效,并不在考虑范围内。
更多electron相关经验文章,请支持苏南大叔的相关文章:
dd