众所周知,Windows使用带反斜杠的路径,而Unix使用带反斜杠的路径。node.js提供path.join()了始终使用正确的斜杠。因此,例如,'a/b/c'您不必编写Unix,而只编写Unix path.join('a','b','c')。
path.join()
'a/b/c'
path.join('a','b','c')
但是,似乎存在这种差异,但是如果您不对路径进行规范化(例如,使用path.join),而仅编写诸如a/b/cnode.js之类的路径,则在Windows上运行脚本没有问题。
a/b/c
那么,有没有写上任何好处path.join('a','b','c')了'a/b/c'?无论平台如何,两者似乎都可以工作…
Windows文件系统使用正斜杠或反斜杠作为路径分隔符都没有问题(从DOS时代开始就是这种情况)。唯一的实际问题是Windows命令行处理器(或更具体地说,Windows本地命令行实用程序)倾向于将正斜杠解释为选项说明符而不是路径组成部分。因此,如果需要将路径传递给作为子进程运行的Windows命令,则需要反斜杠路径。另外,返回路径的Windows API调用(以及来自高级语言的调用Windows API的方法)将使用反斜杠,因此,即使不将其传递给子流程,也需要对其进行规范化。