Javascript 提前退出加载节点模块而不停止进程

Javascript 提前退出加载节点模块而不停止进程,javascript,node.js,module,Javascript,Node.js,Module,我有一个模块需要,但我暂时不想在模块中运行代码。我可以把它注释掉,但这让我想知道是否有办法提前退出/返回加载模块 是否有一种内置方式来停止模块代码中的执行流,并尽早“返回”?没有内置方式,但您可以使用以下解决方法。将整个模块包装在一个IIFE中,只需使用return语句: (function() { // some code // stop execution here return; // some code })() 实际上,有一种内在的方式。每个节点模块都加载在模

我有一个模块需要
,但我暂时不想在模块中运行代码。我可以把它注释掉,但这让我想知道是否有办法提前退出/返回加载模块


是否有一种内置方式来停止模块代码中的执行流,并尽早“返回”?

没有内置方式,但您可以使用以下解决方法。将整个模块包装在一个IIFE中,只需使用return语句:

(function() {

  // some code

  // stop execution here
  return;

  // some code

})()

实际上,有一种内在的方式。每个节点模块都加载在模块函数包装器中,模块作为该函数的主体执行。因此,您可以在模块中的任何位置使用普通的
返回
,以停止其余代码的执行

节点模块在函数包装器中执行,如下所示:

(function (exports, require, module, __filename, __dirname, process, global) {  
    // module code is here

    // a return statement skips executing any more code in your module after that statement
    return;
 });
因此,您可以在模块中的任何位置使用
return
语句,它将从模块包装函数返回,跳过模块中的其余代码


可能是更干净的代码,只使用<代码>如果语句或在您的模块中使代码稍微自我描述,而不让某人奇怪为什么在模块的中间有一个无关的<代码>返回< /代码>语句:

// this code temporarily removed from being executed
if (someBoolean) {
    // your module code here
}

或者,如果您打算删除一段时间,只需注释掉一大块代码。

Linters不喜欢这样,但我通过测试运行验证了返回是否有效。@Neffets-我添加了一条注释,说明只需使用
if
语句即可。另一个答案具有相同的lint警告。如果语句更好,babel将不会使用return语句传输模块。@Mr5o1-您也可以围绕模块初始化包装自己的函数并调用它。然后,您可以非常清楚地在自己的函数中的任何地方使用
return
。@jfriend00是的,但这不是OP真正想要的,对吗?在您的回答中,您指出if语句是实现OP试图实现的目标的更好方式,我非常同意。