请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有关path.resolve方法的疑惑

1、Node中文官网有一段描述:“指定的路径序列是从右往左开始处理的,后面的 path 被依次处理,直到构造完绝对路径。”

这里文档强调的是从右往左解析,而您讲的时候是从左往右拼接的。

2、下面是中文官网的一个例子:
path.resolve(’/foo/bar’, ‘/tmp/file/’);
// 返回: ‘/tmp/file’

这里如果按照您的讲解,应该返回“/foo/bar/tmp/file”,而不是“/tmp/file”。

所以官方文档的“从右往左”的描述是正确的。以“web: resolve(‘src/platforms/web’)”为例:它的含义应该是:

首先,判断“src/platforms/web”这个是否是绝对路径,显然这个不是绝对路径,因此拼接上“…/”路径。

进行完上述拼接以后得到“…/src/platforms/web”,此时这个路径还是不是绝对路径,他只是从“alias.js”这个文件所在当前目录向上一级移动,也就是“vue/src/platforms/web”。接着再次拼接“__dirname”。

最后,得到完整绝对路径“/path/to/vue/src/platforms/web”。

老师,您说我说的对吗?

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2018-11-20 09:07:16

path.resolve('/foo/bar', '/tmp/file/') 不可能返回 /foo/bar/tmp/file 啊,除非是 
path.resolve('/foo/bar', 'tmp/file/');
你要区分绝对路径还是相对路径,/tmp/file/ 是绝对路径
从左往右也很好理解
const resolve = p => path.resolve(__dirname, '../', p)
web: resolve('src/platforms/web')
当前的 __dirname 目录是当前 alias 目录, ../ 表示上一级,也就是 vue 项目的根目录,然后再拼接 src/platforms/web,得到最终完整的路径 vue/src/platforms/web

1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号