Nodejs webstorm+chatofpomelo 启动报错 spawn enoent

Nodejs webstorm+chatofpomelo 启动报错 spawn enoent

“C:\Program Files\nodejs\node.exe” app.js evn=development [2013-08-07 12:43:03.200] [INFO] \node_modules\pomelo\lib\application.js - application inited: “master-server-1” [2013-08-07 12:43:03.493] [INFO] console - info: ‘socket.io started’ [2013-08-07 12:43:03.495] [INFO] \node_modules\pomelo\lib\master\master.js - masterHA not enabled, start servers [2013-08-07 12:43:03.496] [INFO] [default] - Executing cd “D:\pomeloDemo\pomelo_demo\game-server” && “C:\Program Files\nodejs\node.exe”–debug=8787 “D:\pomeloDemo\pomelo_demo\game-server\app.js” env=development id=connector-server-1 host=192.168.80.29 port=4050 clientPort=3050 frontend=true args=–debug=8787 serverType=connector on 192.168.80.29 [2013-08-07 12:43:03.498] [INFO] [default] - Executing cd “D:\pomeloDemo\pomelo_demo\game-server” && “C:\Program Files\nodejs\node.exe”–debug=8788 “D:\pomeloDemo\pomelo_demo\game-server\app.js” env=development id=chat-server-1 host=192.168.80.29 port=6050 args=–debug=8788 serverType=chat on 192.168.80.29 [2013-08-07 12:43:03.499] [INFO] [default] - Executing cd “D:\pomeloDemo\pomelo_demo\game-server” && “C:\Program Files\nodejs\node.exe”–debug=8789 “D:\pomeloDemo\pomelo_demo\game-server\app.js” env=development id=gate-server-1 host=192.168.80.29 clientPort=3014 frontend=true args=–debug=8789 serverType=gate on 192.168.80.29 [2013-08-07 12:43:03.501] [INFO] \node_modules\pomelo\node_modules\pomelo-admin\lib\consoleService.js - try to connect master: “master”, “127.0.0.1”, 3005 [2013-08-07 12:43:03.515] [INFO] console - ----------------->>>>>>>>>>>>>>>>>>>>>>> [2013-08-07 12:43:03.516] [ERROR] console - Caught exception: Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit (child_process.js:771:34) [2013-08-07 12:43:03.516] [INFO] console - ----------------->>>>>>>>>>>>>>>>>>>>>>> [2013-08-07 12:43:03.516] [ERROR] console - Caught exception: Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit (child_process.js:771:34) [2013-08-07 12:43:03.516] [INFO] console - ----------------->>>>>>>>>>>>>>>>>>>>>>> [2013-08-07 12:43:03.517] [ERROR] console - Caught exception: Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit (child_process.js:771:34) [2013-08-07 12:43:03.852] [INFO] \node_modules\pomelo\lib\application.js - “master-server-1” enter after start… [2013-08-07 12:43:03.852] [INFO] \node_modules\pomelo\lib\application.js - “master-server-1” finish start =================================以上是报错的内容======================== 我在使用webstorm启动chatofpomleo的时候报错了,之前还好好的,不知道什么原因… 请大侠指导…


3 回复

Nodejs WebStorm + ChatofPomelo 启动报错 spawn ENOENT

问题描述

在使用 WebStorm 启动基于 Pomelo 的聊天应用时遇到了错误。具体来说,错误信息为 Error: spawn ENOENT,这通常表示 Node.js 在尝试执行某个命令或进程时未能找到该命令或文件。

错误日志

从错误日志中可以看到,问题出在启动多个服务器(如 connector-serverchat-servergate-server)时:

[2013-08-07 12:43:03.515] [ERROR] console -  Caught exception: Error: spawn ENOENT
at errnoException (child_process.js:980:11)
at Process.ChildProcess._handle.onexit (child_process.js:771:34)

解决方法

  1. 检查路径配置 确保所有命令的路径配置正确无误。例如,确保 node.exe 路径正确,以及 app.js 文件的路径没有错误。

  2. 检查环境变量 检查系统环境变量是否包含 Node.js 的安装路径(如 C:\Program Files\nodejs),确保 WebStorm 可以访问到这些路径。

  3. 修改启动配置 如果是在 WebStorm 中运行项目,可以检查项目的启动配置。确保配置文件中的命令和参数设置正确。

    • 打开 WebStorm,进入 Run/Debug Configurations
    • 检查 Before launch 部分,确保所有预启动任务配置正确。
    • 确认 Program argumentsWorking directory 设置正确。
  4. 检查依赖 确保所有依赖项都已正确安装。可以在项目根目录下运行以下命令来安装缺失的依赖:

    npm install
    
  5. 手动启动 尝试手动启动应用,看看是否能复现问题。如果手动启动正常,可能是 WebStorm 配置问题。

示例代码

假设你的项目结构如下:

pomelo_demo/
├── game-server/
│   ├── app.js
│   └── ...
├── package.json
└── ...

启动配置示例

在 WebStorm 中,你可以创建一个 npm 运行配置:

  1. 打开 Run -> Edit Configurations...

  2. 点击 + 添加一个新的 NPM 配置。

  3. 设置如下:

    • Name: Start Game Server
    • Package Manager: npm
    • Script: start
    • Working directory: ${workspace.dir}/game-server
    • Environment variables: env=development
    • Arguments: --debug=8787
  4. 保存并运行该配置。

通过上述步骤,你应该能够解决 spawn ENOENT 错误,并成功启动你的 Pomelo 聊天应用。


这个问题后来仔细回想一下,是我的ip地址变了,而我的server.json配置的是我本机的ip,所以报错。今天吐槽一下,nodejs有些报错信息很不准确啊。

spawn ENOENT 错误通常表示 Node.js 在尝试执行某个子进程时找不到指定的可执行文件或命令。这可能是由于路径配置不正确、环境变量未正确设置或者文件权限问题等原因造成的。

根据你的描述,错误发生在启动不同的服务器(如 connector-server, chat-server, gate-server)时。具体来说,问题可能出现在以下脚本中:

Executing cd "D:\pomeloDemo\pomelo_demo\game-server" && "C:\Program Files\nodejs\node.exe"–debug=8787 "D:\pomeloDemo\pomelo_demo\game-server\app.js" env=development  id=connector-server-1  host=192.168.80.29  port=4050  clientPort=3050  frontend=true  args=–debug=8787  serverType=connector  on 192.168.80.29

检查以下几点可能有助于解决问题:

  1. 确保 Node.js 路径正确:确保 C:\Program Files\nodejs\node.exe 存在,并且路径无误。
  2. 检查空格和连字符:注意上面命令中的 –debug 应该是两个短横线 --debug
  3. 环境变量:确认 PATH 环境变量包含 Node.js 的安装目录。
  4. 文件权限:确保你有权限访问和执行这些文件和目录。

如果以上步骤无法解决问题,建议你在 WebStorm 中尝试直接运行这些命令,而不是通过 IDE 自带的启动配置,以便更好地追踪错误来源。

回到顶部