Node.js path.join 删除前导句点

Yan*_*hon 7 node.js

我带着一个计划在我的个人计算机上摆弄的工作项目回家,我安装了所有东西,使用完全相同的环境(Node v0.11.12)等。启动项目,然后我收到消息抱怨配置加载器模块找不到文件(该文件存在且位于错误暴露的路径中)。

仔细观察错误,我意识到问题是path.join(). 在哪里

path.join('./foo/bar');
// 'foo/bar'
Run Code Online (Sandbox Code Playgroud)

这不好。为什么要path.join去掉领先期?

** 笔记 **

以上只是一个例子。该程序利用了这样的功能

var configFile = require(path.join(modulePath, 'conf', file));
Run Code Online (Sandbox Code Playgroud)

例如, wheremodulePath是相对于当前工作目录(即./app/module/

use*_*740 3

这是正确的行为,并记录在Path.join文档中:

将所有参数连接在一起并规范化结果路径。

它是正确的,因为foo/bar 的规范化(规范)形式,就像它是或 的./foo/bar规范化形式一样。./foo/././bar/.foo/baz/../bar

require('./foo/bar')(和 之间的差异require('foo/bar')以及由此产生的任何问题,应在不带 的不同问题中具体解决path.join。)