【问题标题】:Path.join cross platform in Nodejs for requireNodejs中的Path.join跨平台要求
【发布时间】:2021-01-31 22:50:06
【问题描述】:

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

谢谢

例如

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

而不是写

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

【问题讨论】:

    标签: node.js path cross-platform filepath


    【解决方案1】:

    只要我记得,两者都可以正常工作并且在 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() 的时间是您可能正在构建一个路径,该路径将发送到需要特定于操作系统的路径分隔符的某个外部模块,或者您只是希望path.join() 处理确保存在是您要加入的片段之间的唯一一个路径分隔符(例如当您不知道各个片段是否已经有前导或尾随斜杠时)。

    require() 本身可以在任何受支持的平台上使用/ 作为路径分隔符正常工作,因此即使操作系统路径分隔符为\require('./config/module') 在 Windows 上也可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 2010-12-25
      相关资源
      最近更新 更多