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

时间:2017-03-28 08:05:06

标签: node.js commonjs

通常,我们需要节点模块,如:

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

如果我们这样做:

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

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

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

2 个答案:

答案 0 :(得分:0)

我相信我得到了答案here

<强> TL; DR
没有任何副作用,除了要求操作被阻止,所以你可能不想把它深入你的应用程序。

答案 1 :(得分:0)

如果&#39;要求&#39;放置在模块级别,所需模块将根据需要执行。 但如果要求&#39;除非你的函数被调用,否则它被置于一个函数中,它不会在require时执行。