gpt4 book ai didi

javascript - node.js 中的 require(../) 是如何工作的?

转载 作者:搜寻专家 更新时间:2023-10-31 23:31:01 26 4
gpt4 key购买 nike

node.js 遇到 var foo=require(../) 时会寻找哪些模块?

看起来它会在当前目录的上一级目录中查找,但它究竟会查找什么并执行什么操作?

也许这与 C 中的 include 或 Python 中的 import 有类比?

我一直在从 node.js 开始阅读 http://nodejs.org/api/modules.html并在 github 上找到示例代码,例如

var express = require('express')
, tracker = require('../')

在使用 npm 安装 express 之后,这段代码似乎分配了 express 模块(文件)的变量 express 内容,其路径必须是全局的,这似乎可以理解,尽管我知道有两种类型模块安装,但这是另一个问题。

但是变量tracker的内容是什么?

最佳答案

这取决于该目录中的内容。

如果 X 以 './' 或 '/' 或 '../' 开头:

一个。 LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)

LOAD_AS_FILE(X):

  1. 如果 X 是文件,则将 X 作为 JavaScript 文本加载。停止
  2. 如果 X.js 是一个文件,将 X.js 作为 JavaScript 文本加载。停止
  3. 如果 X.node 是一个文件,加载 X.node 作为二进制插件。停止

LOAD_AS_DIRECTORY(X):

  1. 如果X/package.json是一个文件,
    一种。解析 X/package.json,寻找“main”字段。
    b.让 M = X + (json 主字段)
    C。 LOAD_AS_FILE(M)
  2. 如果 X/index.js 是一个文件,将 X/index.js 作为 JavaScript 文本加载。停止
  3. 如果 X/index.node 是一个文件,加载 X/index.node 作为二进制插件。停止

关于javascript - node.js 中的 require(../) 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12624901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com