Path.join 需要在 Nodejs 中跨平台

Path.join cross platform in Nodejs for require

我记得很久以前在 Node js 中,需要使用 path.join 才能跨平台加载本地模块。我只是想知道我们是否仍然需要这样的策略,或者 Node 12+ 不再需要它?

谢谢

例如

const i= require(path.join(__dirname,'config','myModule'))

而不是写作

const i=require('./config/module')

任何一个都可以正常工作,而且从我记事起就在 node.js 中一直很好。 require() 的模块加载规则已完整记录 here。您的具体情况应该包含在第一部分和步骤 3a 中:

require(X) from module at path Y
1. If X is a core module,
   a. return the core module
   b. STOP
2. If X begins with '/'
   a. set Y to be the filesystem root
3. If X begins with './' or '/' or '../'
   a. LOAD_AS_FILE(Y + X)

你可能需要使用 path.join() 的时候是当你可能正在构建一个路径,你将发送到一些需要 OS-specific 路径分隔符的外部模块时,或者当你只需要 path.join() 处理以确保您要加入的片段之间只有一个路径分隔符(例如,当您不知道各个片段是否已经有前导或尾随斜杠时)。

require() 本身可以在任何支持的平台上与 / 一起作为路径分隔符正常工作,因此 require('./config/module') 在 Windows 上也可以正常工作,即使 OS 路径分隔符是 \.