坚信朋友们都对这两个方式path.join
、path.resolve
不生疏,在大家写node或是配备webpack的过程中都使用过该方式。例如下边这一段:
output: { path: Path.join(._dirname, "dist"), filename: "[name]_[chunkhash:8].js" }
可是你了解这两个的差别吗。今日小编就而言一下二者差别及使用方法。
先说一下,path
为大家node
中的一个内嵌控制模块,这两个方式全是path
控制模块下给予的。
Path.resolve
不空话,先图中。我们可以见到resolve
方式接受无尽的主要参数且全是string种类的,该方式传参也是string
种类的(是一个途径)。
板栗:
// 这儿大家就当._dirname是 /root path.resolve(._dirname, "./dist") // 导出:/root/dist path.resolve(._dirname, "dist", "dir") // 导出:/root/dist/dir path.resolve(._dirname, "/dist") // 导出:/dist path.resolve(._dirname, "/dist", "../") // 导出:你的硬盘网站根目录 path.resolve(._dirname, "/dist", "..") // 导出:你的硬盘网站根目录 path.resolve(._dirname, "/dist", "..", "/test") // 导出:/test path.resolve(._dirname, "dist", "dir", "/test") // 导出:/test path.resolve(._dirname, "dist", null, "/test") // 导出:出错,主要参数一定要字符串类型的!
根据上边板栗我们可以见到,主要参数可以随意,传参是一个途径(string种类)。殊不知上边的结论是在我们的主要参数里边遇上/
便是根途径的情况下,这时传参途径会出现巨大更改,转变为:以最后一次发生/
根途径的数值当今途径的逐渐。
Path.join
join
方式跟resolve
方式一样,接受无尽的主要参数,传参也是string种类。join
说白了便是拼凑含意。大家来说一下join
的使用方法吧
板栗:
// 这儿大家就当._dirname是 /root path.join(._dirname, "dist") // 导出:/root/dist path.join(._dirname, "dist", "/dir") // 导出:/root/dist/dir path.join(._dirname, "dist", "/dir", "..") // 导出:/root/dist path.join(._dirname, "dist", "/dir", "../test") // 导出:/root/dist/test path.join(._dirname, "dist", "/dir", "/..test") // 导出:/root/dist/dir/..test path.join(._dirname, "/dist", "..") // 导出:/root
根据上边板栗我们可以见到join
方式仅仅拼凑途径,也不会像resolve
那般遇上/
根就立即把全部途径更换跳,而仅有在规范的..
、../
绝对路径的情况下跳出来文件目录。
二者差别
根据之前的2个板栗,我敢确信可以汇总出二者的区分在哪儿了。简言之便是resolve
方式是对根途径的而立即转变的,而join
方式只能将全部主要参数拼凑,最终产生一个完全的途径(自然遇上..
or../
会跳出来当前目录)。
这一在具体开发设计中配备或是使用的地区更多的,有时大家写字符串数组../src/index.html
不起效时,就可以试一下resove
or join
哦。
完!就发送到这吧,期待可以对大伙儿涨一点小常识,若有协助请帮该文章内容点个赞与在一下吧,让越来越多的人见到
大量node有关专业知识,请浏览:nodejs 实例教程!!
以上便是nodejs中path.join和path.resolve的比照,聊一聊他们的差别的详尽具体内容,大量请关心自学java网其他相关文章!
WWW.lllT.neT声明:有的资源来自网络转载,版权归原作者所有,如有侵犯到您的权益请联系邮箱:our333@126.com我们将配合处理!
原文地址:nodejs中path.join和path.resolve的比照,聊一聊他们的差别发布于2021-12-09 16:09:02