【问题标题】:In the child_process module in node.js在 node.js 的 child_process 模块中
【发布时间】:2017-07-12 02:41:55
【问题描述】:

在node.js的child_process模块中,为什么execSync ('node.exe --version')可以取到值,而spawnSync ('node.exe', ['--version'])却取不到值?但是childProcess.spawnSync ('D: / Program Files / nodejs / node.exe', ['--version']);可以得到值。

【问题讨论】:

  • 其实这是导致我的vscode无法正常工作的问题。因为vscode在很多时候使用spawnSync()函数。跨度>
  • 这个问题已经解决了。#728

标签: javascript node.js visual-studio-code vscode-extensions


【解决方案1】:

exec 使用系统 bash,spawn 由 *nix 中的fork 实现(我猜是 windows.h 中的 createProcess)。

【讨论】:

  • 为什么childProcess.spawnSync ('D:/Program Files/nodejs/node.exe', ['--version']);能拿到值?
  • @JRoger 当你使用命令'node.exe'时,系统将搜索本地工作目录,如果没有找到则系统将从$PATH目录搜索node.exe 转到en.wikipedia.org/wiki/PATH_(variable)了解更多信息。而bash 可能会默认加载配置,例如.bashrc,以便系统可以从$PATH 中找到它。当您使用命令'D:/Program Files/nodejs/node.exe' 时,它表示完整路径,系统不需要从$PATH 搜索。
  • Lellansin path D:/Program Files/nodejs/ ware 在我电脑的环境变量中。
  • 正如我所说,这可能是由工具引起的。 exec 使用系统 bash,这样会在 $PATH 中搜索,但 spawn 不会。
  • @Lellansini 不是你说的那样。见#728
猜你喜欢
  • 1970-01-01
  • 2018-04-04
  • 2017-05-18
  • 2015-01-06
  • 2019-04-24
  • 1970-01-01
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多