В чем разница между require (‘mypackage.js’) и require (‘mypackage’)?

Оба эти 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 смотрит, является ли данный модуль основным модулем. (например, http , fs и т. д.) Всегда занимает приоритет в модулях загрузки.
    2. Если данный модуль не является основным модулем (например, http , fs и т. Д.), 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 установленных на вашем компьютере (очевидно, установленным файлом установщика Node.JS, если вы находитесь в windowsх ) Не найден во всех вышеперечисленных шагах, затем печатает трассировку стека на stder
      Например : Error: Cannot find module 'yourfile'
      Для получения дополнительной информации: ссылка здесь даже циклическая require () объясняется очень хорошо.
    Давайте будем гением компьютера.