gpt4 book ai didi

node.js - 要求 ('mypackage.js' )和要求 ('mypackage' )有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 23:15:42 26 4
gpt4 key购买 nike

这两个 require 语句的工作方式似乎相同:

var Mypackage = require('mypackage.js');

var Mypackage require('mypackage');

它们之间有区别吗?

最佳答案

答案如下:

Module.prototype.load = function(filename) {
debug('load ' + JSON.stringify(filename) +
' for module ' + JSON.stringify(this.id));

assert(!this.loaded);
this.filename = filename;
this.paths = Module._nodeModulePaths(path.dirname(filename));

var extension = path.extname(filename) || '.js';
if (!Module._extensions[extension]) extension = '.js';
Module._extensions[extension](this, filename);
this.loaded = true;
};
  1. Node.JS查看给定模块是否为核心模块。 (例如 httpfs 等)总是优先加载模块。
  2. 如果给定模块不是核心模块(例如 httpfs 等),Node.js 将开始搜索名为,< em>node_modules
    它将从当前目录开始(相对于 Node.JS 中的当前执行文件),然后沿着文件夹层次结构向上移动,检查每个级别的 node_modules 文件夹。一次Node.JS找到 node_modules 文件夹,然后它会尝试将给定的模块加载为 (.js) JavaScript 文件或命名的子目录;如果找到命名的子目录,它将尝试以各种方式加载文件。所以,例如
  3. 如果您请求加载模块,“utils”及其目录不是 .js 文件,则:
    Node.JS将在分层目录中搜索 node_modulesutils 有以下几种方式:
    ./node_modules/utils.js
    ./node_modules/utils/index.js
    ./node_modules/utils/package.json
  4. 如果 Node.JS在上述步骤中仍然找不到文件,Node.js 将开始从环境变量中查找目录路径,即 NODE_PATH 在您的机器上设置(显然由Node.JS 安装程序文件(如果您在 Windows 上)然后在上述所有步骤中未找到,将堆栈跟踪打印到 stder
    例如:错误:找不到模块'yourfile'
    更多信息:链接是here循环的require()都解释的很好。

关于node.js - 要求 ('mypackage.js' )和要求 ('mypackage' )有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15471965/

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