首页 > 解决方案 > 确定 Javascript (NodeJS) 代码是否在 REPL 中运行

问题描述

我希望在使用 IJavascript 内核的 Jupyter 笔记本中创建一个 NodeJS 源文件,以便我可以快速调试我的代码。一旦我让它工作,我就可以使用 Jupyter 的“下载为...”功能将笔记本保存为 NodeJS 脚本文件。

我希望能够有选择地忽略/包含在我运行生成的 NodeJS 脚本文件时不会执行的笔记本源代码中的代码。

我已经解决了这个问题,因为我可以为 Python Jupyter 笔记本做类似的事情,因为我可以确定代码是否在交互式会话(IPython [REPL])中运行。我通过在 Python 中使用这个函数来实现这一点:

def is_interactive():
    import __main__ as main
    return not hasattr(main, '__file__')

(感谢告诉 Python 是否处于交互模式

有没有办法为 NodeJS 做类似的事情?

标签: node.js

解决方案


我不知道这是否是正确的方法,但如果你基本上找不到其他任何东西

try {
   const repl = __dirname
} catch (err) {
  //code run if repl
}

感觉有点 hacky 但可以工作¯\_(ツ)_/¯


推荐阅读