【问题标题】:Least verbose way of requiring a single file?需要单个文件的最简洁的方式?
【发布时间】:2018-10-05 08:33:23
【问题描述】:

我正在使用 Node.js 并希望将我的代码拆分为单独的文件。但是,require 这些模块以可靠的方式似乎相当冗长。

例如:

var module = require(path.resolve(__dirname, "./file.js"));

此外,如果文件位于不同的文件夹中,我将需要处理相对路径混乱。

这似乎是一个相当简单的问题,但我的研究还没有找到解决方案。谢谢你的时间。

【问题讨论】:

  • 为什么相对路径不可靠?我从来没有遇到过编码相对路径的问题...const module = require('../other_folder/file.js')
  • @TJBlackman 它是可靠的,只是非常冗长。如果没有path.resolve__dirname,您必须保证用户在正确的文件夹中运行脚本。但是,如果您有一棵大树,相对路径可能会很烦人。
  • @iONinja 相对路径(如果它们以./ 开头)被解析相对于它们出现的文件。您问题中显示的代码应该与@987654328 的行为相同@ 在所有常见情况下。
  • @cdhowie, thanks.
  • @iONinja 没问题。请注意,这不是“裸”路径的情况,如require('file.js'),它将仅搜索包含文件夹(通常包括目录树上的node_modules)。 ./ 是告诉 require() 你希望它看起来相对于包含当前模块的目录的神奇位(并且该目录 - 不搜索包含目录)。跨度>

标签: javascript node.js module path require


【解决方案1】:

要求路径始终与正在运行的脚本相关,因此您不需要 path.resolve__dirname

有一个number of solutions可以避免相对路径的不便。

感谢cdhowie您的comment

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-02
    • 2019-12-02
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    相关资源
    最近更新 更多