Can';t start foreman cos node.js抱怨它可以';找不到
试图让一个项目在我的debian虚拟机上运行,但foreman拒绝启动。node.js错误消息没有太大帮助,因为它甚至没有告诉我找不到哪个模块Can';t start foreman cos node.js抱怨它可以';找不到,node.js,foreman,Node.js,Foreman,试图让一个项目在我的debian虚拟机上运行,但foreman拒绝启动。node.js错误消息没有太大帮助,因为它甚至没有告诉我找不到哪个模块 sissi@debian:/media/fancystuff$ foreman start 22:05:33 web.1 | started with pid 2949 22:05:33 web.1 | 22:05:33 web.1 | module.js:337 22:05:33 web.1 | throw ne
sissi@debian:/media/fancystuff$ foreman start
22:05:33 web.1 | started with pid 2949
22:05:33 web.1 |
22:05:33 web.1 | module.js:337
22:05:33 web.1 | throw new Error("Cannot find module '" + request + "'");
22:05:33 web.1 | ^
'2:05:33 web.1 | Error: Cannot find module '/media/fancystuff/web.js
22:05:33 web.1 | at Function._resolveFilename (module.js:337:11)
22:05:33 web.1 | at Function._load (module.js:279:25)
22:05:33 web.1 | at Array.0 (module.js:484:10)
22:05:33 web.1 | at EventEmitter._tickCallback (node.js:190:38)
22:05:33 web.1 | process terminated
22:05:33 system | sending SIGTERM to all processes
顺便说一句:无论web.js是否存在,或者它是否被删除,错误消息都是一样的……这只会增加我的困惑
顺便说一下2:“工头检查”给我“检测到有效的程序文件(web)”
叹息。从这行开始:
'2:05:33 web.1 | Error: Cannot find module '/media/fancystuff/web.js
在调用节点web.js的Procfile中,似乎有一个非打印字符位于行的末尾,因为放在模块名称字符串后面的
字符位于行的开头
编辑Procfile并确保该特殊字符已消失,您的问题可能会得到解决。我可以通过添加在Debian dev.服务器上复制这一点,最有可能的是程序文件
是从附加回车符的不同操作系统复制的,例如与foreman不兼容的\r\n
。只需删除Procfile中的尾随空格或字符,然后重新运行。或者最简单的方法是删除Procfile
并使用相同的操作系统创建
示例文件:
web:node web.js
然后启动应用程序:
ubuntu@yadayada:~/heroku/web$foreman开始
无论web.js是否存在,错误都是一样的。web.js只是初始化项目所需的所有不同模块(redis、oauth……)随机猜测:这可能与项目位于不支持符号链接的已安装驱动器上有关吗?是的,是的;但在我看来,您的Procfile中似乎有问题,因为在错误日志中,行尾的字符跳到了行首。在eol之前的web.js之后,它是否会意外地出现在您的Procfile中?cool thx删除了Procfile末尾的am空行,问题就解决了!foreman仍然没有启动,但那是因为缺少其他东西,呵呵;)