节点path.relative返回不正确的path

我敢肯定,我一定是错的,但在Node中, path.relative似乎输出错误的目录,或至less有一个我没有料到:

> path.relative('a/file.js', 'a/file.css') > '../file.css' 

不过,我期望的结果是这样的:

 > './file.css' 

本质上,我试图计算两个path中的差异,以便一个文件require另一个文件, ../file.css显然是错误的我的要求,因为这两个文件都在a目录中。 输出表明file.css位于父目录中。

我错过了什么?

       

网上收集的解决方案 "节点path.relative返回不正确的path"

据我所知, path.relative()需要一个文件夹而不是文件作为第一个参数。 这工作:

 path.relative('a', 'a/file.css') > 'file.css' 

以下是path.relative的源代码: https : //github.com/joyent/node/blob/master/lib/path.js#L504-L530 https://github.com/joyent/node/blob/master/ LIB / path.js#L265-L304

(注意:如果将来行号改变了,下面是我写这个时候的源代码链接: https : //github.com/nodejs/node-v0.x-archive/blob /94beb2985b4cb25e592a9ccc226f6c824a81e510/lib/path.js 。)

正如你在那里看到的那样,path被它们中的斜杠分开,它只是比较部分的数量,所以如果你传递一个文件而不是一个文件夹作为参数,它是行不通的。

这可能是一个错误,或者至less应该更好地logging。 你可以在这里提交一个错误报告: https : //github.com/joyent/node/issues/new