不全局加载节点模块的副作用

Side-effects of not loading node modules globally

通常,我们需要像这样的节点模块:

var dep = require('some-dependency');
function runner() {
  dep();
}

如果我们这样做:

function runner() {
var dep = require('some-dependency');
dep();
}

我知道它确实有效,没有什么能阻止我这样做,除了 Eslint 的 global-require 规则。

但考虑到 Node 内部如何处理后一种模式是否有任何副作用?

我相信我得到了答案here

TL;DR:
没有这样的副作用,除了 require 操作被阻塞,所以你可能不想把它深入到你的应用程序中。

如果'require'放在模块级别,则需要的模块将在需要时执行。 但是如果 'require' 被放在一个函数中,它不会根据要求执行,除非你的函数被调用。