这两个require
语句似乎都以相同的方式运行:
var Mypackage = require('mypackage.js');
var Mypackage require('mypackage');
它们之间有区别吗?
答案 0 :(得分:16)
以下是答案:
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将开始搜索名为 {{1}的目录} 的。 node_modules
文件夹,它就会尝试将给定模块加载为(.js)JavaScript文件或命名子目录;如果它找到了命名的子目录,它将尝试以各种方式加载该文件。所以,例如node_modules
和
node_modules
通过以下方式:
utils
./node_modules/utils.js
./node_modules/utils/index.js
./node_modules/utils/package.json
设置为您的机器(如果您在Windows上,显然由Node.JS安装程序文件设置)
然后,在上述所有步骤中找不到,将堆栈跟踪打印到stder 例如: NODE_PATH
Error: