Node.js自动"需要"哪些模块?

gar*_*mur 11 javascript node.js

快速问题,但令人惊讶的是我找不到谷歌搜索的答案......当我使用node交互式解释器时,我可以输入基本上所有核心模块的名称,并将它们作为对象输出到控制台上. ..但是,据我所知,运行.js文件时,默认情况下核心模块并不是全部包含在内.

任何人都可以为我清除这个吗?所有帮助赞赏.

Mic*_*ley 20

在节点0.8开始,repl.js 定义列表内置库将被自动必需的,当你在REPL键入他们的名字:

exports._builtinLibs = ['assert', 'buffer', 'child_process', 'cluster',
  'crypto', 'dgram', 'dns', 'events', 'fs', 'http', 'https', 'net',
  'os', 'path', 'punycode', 'querystring', 'readline', 'repl',
  'string_decoder', 'tls', 'tty', 'url', 'util', 'vm', 'zlib'];

...

if (exports._builtinLibs.indexOf(cmd) !== -1) {
  var lib = require(cmd);
  if (cmd in self.context && lib !== self.context[cmd]) {
    self.outputStream.write('A different "' + cmd +
                            '" already exists globally\n');
  } else {
    self.context._ = self.context[cmd] = lib;
    self.outputStream.write(self.writer(lib) + '\n');
  }
  self.displayPrompt();
  return;
}
Run Code Online (Sandbox Code Playgroud)

这是特别的功能repl.js,并且不会在写自己的Node.js程序时,任何方式在所有的工作; 在那里,你必须特别require想要使用任何东西.