【问题标题】:how to open node in a new terminal from cmd?如何从 cmd 在新终端中打开节点?
【发布时间】:2021-11-10 11:53:06
【问题描述】:

当我在 cmd 中输入 start node 时,它会启动一个新的节点终端,如下所示:

但是如何让它在节点终端中运行脚本并在完成后关闭它?

也许是这样的?

start node "index.js"(当我尝试这个时它会打开一个终端然后立即关闭)

index.js:

console.log('hello there!');

await new Promise(r=>setTimeout(r,3000));

【问题讨论】:

  • 您不能在 14.17.6 中使用顶级 await 。据我记得,它可以在 14.18.0 中使用。

标签: javascript node.js cmd


【解决方案1】:

14.18.0 之前的 Node 版本不支持顶级 awaits;有a helpful discussion on GitHub as to why

由于您运行的是 v14.17.6,您需要将代码包装在匿名的 async 函数中,然后使用 () 调用它:

(async () => {
    console.log('hello there!');
    await new Promise(r=>setTimeout(r,3000));
})();

生成的节点终端将在您的超时时间内await 关闭之前。

(阅读此答案的人也应该确保他们正确引用了他们希望相对于命令行当前工作目录执行的脚本;请参阅下面@cakelover 的评论。)

【讨论】:

  • 我想它们是从 14.18.0 开始支持的。
  • 啊,是的,我忘记了,该目录也必须是完整目录start node "C:\...\index.js",您也可以添加这个,以便我可以将您的答案标记为正确吗?
  • @Noob 谢谢!没有意识到这一点。我已将该上下文添加到我的答案中。
猜你喜欢
  • 2017-11-25
  • 2018-02-16
  • 1970-01-01
  • 2021-12-09
  • 2015-01-20
  • 2021-11-27
  • 2015-01-08
  • 2015-04-19
  • 2013-05-05
相关资源
最近更新 更多