这两个 require
语句似乎以相同的方式工作:
var Mypackage = require('mypackage.js');
var Mypackage 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;
};
http
, fs
等)
始终在加载模块中优先。http
, fs
等等,然后Node.js将开始搜索名为的目录, node_modules
。 node_modules
然后,它将尝试将给定模块加载为(.js)JavaScript文件或命名子目录;如果它找到了命名的子目录,它将尝试以各种方式加载文件。所以,例如node_modules
和
utils
通过以下方式:
./node_modules/utils.js
./node_modules/utils/index.js
./node_modules/utils/package.json
NODE_PATH
在您的机器上设置(如果您在Windows上,显然由Node.JS安装程序文件设置)
然后,在上述所有步骤中找不到,将堆栈跟踪打印到 stderError:
Cannot find module 'yourfile'