当前位置: 首页 > 面试题库 >

require('mypackage.js')和require('mypackage')有什么区别?

蓬弘
2023-03-14
问题内容

这两个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将开始搜索名为的目录 node_modules
    它将从当前目录(相对于Node.JS中当前执行的文件)开始,然后沿文件夹层次结构向上移动,并检查node_modules文件夹的每个级别。一旦Node.JS找到该node_modules文件夹,它将尝试将给定模块作为(.js)JavaScript文件或命名子目录加载;如果找到命名的子目录,它将尝试以各种方式加载文件。因此,例如

  3. 如果您的请求加载模块“utils的”,其目录不是一个.js文件,然后:
    node.js的将搜索分层目录node_modules,并 utils在以下几个方面:
    ./node_modules/utils.js
    ./node_modules/utils/index.js
    ./node_modules/utils/package.json

  4. 如果在上述步骤中Node.JS仍然找不到文件,则Node.js将开始从环境变量 NODE_PATH (例如,在您的计算机上设置)中查找目录路径(如果在Windows上,显然是由Node.JS安装程序文件设置的)在所有然后上述步骤没有找到,将打印一个堆栈跟踪stder
    例如 :有关更多信息:链接在这里,甚至
    循环的require() 都得到了很好的解释。 Error:Cannot find module 'yourfile'
    __



 类似资料:
  • 本文向大家介绍require和import有什么区别?相关面试题,主要包含被问及require和import有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 1.CommonJS 还是 ES6 Module 输出都可以看成是一个具备多个属性或者方法的对象;default 是 ES6 Module 所独有的关键字 2.export default fs 输出默认的接口对象,import fs

  • 问题内容: 我知道PHP的基本用法要求,需要一次,包含一次和包含一次。但是我对何时使用它们感到困惑。 示例:我有3个文件,例如:settings.php,database.php和index.php。 在database.php文件中,我写道: 然后在index.php中,我写道: 所以我两次加载settings.php,可以吗?有使用这些功能的提示吗? 问题答案: 包含一个文件,如果找不到该文件

  • 问题内容: 模块声明中的 require 和 require静态 模块语句之间有什么区别? 例如: 问题答案: 一条子句表示在编译和运行时需要所需的模块。因此,当模块系统在模块解析(处理模块描述符和解决依赖关系的阶段)期间遇到此类子句时,它将搜索可观察模块(JDK和模块路径中的模块)的范围,并引发错误如果找不到模块。 一个从句表示的依赖是在运行时可选。这意味着在编译时,模块系统的行为完全如上所述。

  • 描述 (Description) 此函数然后它要求脚本需要指定版本的Perl才能在EXPR为数字时继续。 如果EXPR或$ _不是数字,则假定该名称是要包含的库文件的名称。 您不能将此功能包括在同一文件中两次。 包含的文件必须返回一个真值作为最后一个语句。 这与使用的不同之处在于,包含的文件实际上成为当前脚本的附加文本。 函数,变量和其他对象不会导入当前名称空间,因此如果指定的文件包含包定义,则对

  • JavaScript 加载执行器,可用于同步或异步加载执行任何js文件。 实例: 1、引入js文件 2、配置require-config.js require.config({baseUrl : '.',//可写实际url(http://xxx.com),也可不写group : {//定义控件组'Base' : [ 'Constant', 'DateUtil', 'ValidUtil', 'Bas

  • require 用来加载一个文件的代码,关于 require 的机制这里不展开讲解,请仔细阅读 官方文档。 简单概括以下几点: require 可加载 .js、.json 和 .node 后缀的文件 require 的过程是同步的,所以这样是错误的: setTimeout(() => { module.exports = { a: 'hello' } }, 0) require 这个文件得到的是空