为什么 require.main.require.resolve 未定义?

2024-03-03

问题

在 Node.js 模块的范围内有一个module对象本来就是对当前模块的引用, a require功能意味着需要模块 and a require.resolve功能意味着查找模块的位置,但不加载模块,而是返回解析的文件名.

如果有一个module.require因为有一个require,为什么没有module.require.resolve因为有一个require.resolve?

或者可能是同样的事情:Why module.require !== require?

console.log('is require.main the same as module?');
console.log( require.main === module );

console.log('does module have a require property being a function?');
console.log( 'function' === typeof module.require );

console.log('is module.require the same as require.main.require?')
console.log( module.require === require.main.require );

console.log('is module.require the same as require?')
console.log( module.require === require );

console.log('why not?')

Notes

  1. 在代码示例中,假设有一个名为something.js通过执行node something.js.
  2. 请不要回答因为目前的实现是,问题是是否真的有理由证明当前的设计/实现/行为是合理的。
  3. 对于那些想知道用例的人,我想解析一个标识符,就像require.resolve是从主模块调用的,所以我期望require.main.require.resolve不存在undefined.

与SO相关

module.require 的目的是什么? https://stackoverflow.com/questions/18884959/what-is-the-purpose-of-module-require

相关文档

有关全局状态的 Node.js 文档here http://nodejs.org/api/globals.html#globals_require:

require()

需要模块。请参阅Modules http://nodejs.org/api/modules.html#modules_modules部分。require实际上不是全局的,而是每个模块的本地的。

require.resolve()

使用内部require()查找模块位置的机制,但不加载模块,而是返回解析的文件名。

and here http://nodejs.org/api/globals.html#globals_module:

module对当前模块的引用。尤其module.exports用于定义模块导出的内容以及通过以下方式提供的内容require().

module实际上不是全局的,而是每个模块的本地的。

它还说明了有关模块的信息here http://nodejs.org/api/modules.html#modules_module_require_id that:

module.require(id)

module.require 方法提供了一种加载模块的方法,就像require()从原始模块中调用。

请注意,为了执行此操作,您必须获取对模块对象的引用。自从require()返回 module.exports,该模块通常仅在特定模块的代码中可用,必须显式导出才能使用。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 require.main.require.resolve 未定义? 的相关文章

随机推荐

  • 使 VSCodium 的 python 代码突出显示等于 VSCode

    因为 微软不好 而从 VSCode 迁移到 VSCodium 发展python应用程序似乎缺少一些代码颜色 例如 Dark 主题中绿松石色的模块或浅蓝色的局部变量 在下面的比较中可见 Left VSCodium Right VSCode 正
  • 如何在Android中读取彩信数据?

    我想读取彩信数据 我已经在中看到了零件表mmssms db彩信条目的存储位置 我正在使用光标 我想知道合适的URI 我正在使用 content mms sms conversations 并且列名称图像的 地址 发送至 文本 或 主题 和
  • 在 C# 中比较两个结构体的值

    我不是在寻找返回 bool 的两个结构的比较 我想知道是否有一种方法可以获取两个结构的哪些字段 相同的结构 但可能不同的值 是不同的 基本上我想要一种更简单的方法来执行以下操作 public class Diff public String
  • 如何将命令行参数从 pytest 传递到代码

    我正在尝试将参数从 pytest 测试用例传递到正在测试的模块 例如 使用 main pyPython 样板 https www python boilerplate com py3 argparse pytest 我可以从命令行运行它 p
  • 音频元素源的 HTML5 本地存储 - 可能吗?

    我最近一直在尝试 html5 的音频和本地存储功能 但遇到了一些让我困惑的事情 我希望能够在本地缓存或存储音频元素的源 以实现更快的离线播放 问题是我看不出当前的实现如何可能实现这一点 我使用 WebKit 尝试过以下操作 创建一个清单文件
  • Azure DocumentDB 十进制截断

    我目前正在使用 Azure DocumentDB 来存储带有价格的产品数据 几乎一切都工作得很好 但现在我遇到了一个问题 即从 DocumentDB 读取时我的小数 System Decimal 被截断 比如这个价格 Input Price
  • 如何使用带有StanfordCoreNLP prop 'ner'的序列化CRFClassifier

    我正在使用StanfordCoreNLP API 接口以编程方式执行一些基本的NLP 我需要在自己的语料库上训练模型 但我想使用StanfordCoreNLP界面来做到这一点 因为它在幕后处理许多干的机制 我在那里不需要太多的专业知识 我已
  • PHP中两个日期相减

    我在 php 中有两个日期 date1 May 3 2012 10 38 22 GMT date2 06 Apr 2012 07 22 21 GMT 然后我将它们都减去 date2 date1 并得到 Result 6 为什么结果是 6 而
  • R dplyr:在列中查找特定值,然后用该值替换右侧后续列中的相邻单元格

    我正在尝试创建一个地点和事件时间的矩阵 就我而言 一旦事件发生 1 它就是永久性的并且不能返回到 0 一旦列中的单元格为 1 我将尝试用 1 填充右侧后续列中的相邻单元格 请参见下面的示例 site lt c A B C D E F G s
  • 用于生成 HTML 标签的 PHP 库 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 PHP 新手 抱歉 如果这是常见问题解答 假设我有这个 HTML 表 table width 10
  • 在 Javascript 或 jQuery 中,如何仅删除第一个和最后一个标签?

    给定以下字符串 var htmlStr p class red 349dsa01 This is p p class blue saf9vsaz a test p 如何删除该字符串的第一个和最后一个标签 这将是结果 var htmlStr
  • 有关角度谷歌地图聚类选项的任何文档吗?

    您好 我正在使用此处提供的 Angular Google 地图库https github com nlaplante angular google maps https github com nlaplante angular google
  • Facebook:自动刷新长期访问令牌

    我正在为我的应用程序的用户存储长期访问令牌 这些用户已将其 Facebook 帐户与其关联 自灭亡以来离线访问代币 这些长期存在的代币的有效期为 大约 60 天 但是 当用户与 Facebook 交互时 它们可以自行刷新 根据文档 http
  • 如何在终端中创建换行符?

    我在最新的 Mac OSX 终端上使用 Python 当我按 Enter 时 它会处理我输入的代码 并且我无法弄清楚如何添加额外的代码行 例如对于基本循环 在 python shell 中 如果您正在键入允许继续的代码 则按一次 Enter
  • 非类型参数的模板参数必须是表达式

    为什么下面的代码是错误的 template
  • 在 WebGL 中与 HTML 背景混合

    我正在将平面颜色和纹理绘制到 WebGL 画布中 我的颜色和纹理具有不同的 alpha 值 我希望它们能够正确混合 我想要透明背景 它们应该与画布下的 HTML 内容混合 在 WebGL 中 我使用 gl clearColor 0 0 0
  • memcpy 是否保留不同类型之间的数据?

    是否打电话memcpy如果缓冲区大小足够 在两个不同的结构上保留原始数据 如果它们各自的数据类型重叠 它是否被定义为用先前数据类型的数据检索另一种数据类型的值 对于两种 c cpp 语言来说 这应该是相似的 但我在 cpp 中提供了一个示例
  • POST 后重新加载浏览器窗口,而不提示用户重新发送 POST 数据

    当用户访问我的网站时 每个页面上都会有一个 登录 链接 单击此按钮会使用一些 JavaScript 来显示一个覆盖窗口 系统会在其中提示用户输入其凭据 输入这些凭据后 将向 Web 服务器发出 Ajax 调用以验证它们 如果它们有效 则会发
  • ggplot,左侧反转 y 轴上有点,第二轴上有条形图

    我试图根据用户的选择以不同的方式生成一个带有两个垂直轴的 ggplot 一个选择允许用户反转每个轴 另一种选择允许他们在每个轴上的系列的点和条之间进行选择 当主 左侧 y 轴反转并且辅助 右侧 数据设置为显示为条形时 我遇到了问题 在这种情
  • 为什么 require.main.require.resolve 未定义?

    问题 在 Node js 模块的范围内有一个module对象本来就是对当前模块的引用 a require功能意味着需要模块 and a require resolve功能意味着查找模块的位置 但不加载模块 而是返回解析的文件名 如果有一个m