openshift与nodejs不尊重package.json中的服务器文件的path

我一直在努力Node.js服务器,现在上传到OpenShift。 我没有使用默认的./server.js文件,而是我的插入点是./bin/www。

我已经将它设置为package.json中的插入文件,如下所示:

{ "name": "NekoList", "version": "0.0.0", "private": true, "scripts": { "start": "./bin/www" ... }, 

我可以validationwww是否在./bin这个目录中,并且它是一个有效的JavaScript文件,在我的本地环境中运行得非常好。

这是根据这里

但是,从我的日志中可以看出,OpenShift仍在尝试查找./server.js

这里可能会发生什么? 我可以发布哪些其他信息会有帮助?

注意:这与这个线程中的问题有关,但是当我意识到这个问题实际上不是依赖性问题时,我决定为真正的问题创build一个新的线程。

您正在使用"scripts"属性,但在OpenShift中,您需要使用"main" 。 这是因为OpenShift使用node-supervisor来启动和pipe理你的Node.js应用程序。

好吧,我想我已经find了问题。

从你提供的信息和这里的信息: Node.js的Markers文件 ,你将不得不添加标记'use_npm'来使用npm start来启动服务器(在脚本部分find启动脚本部分)你的package.json)而不是: supervisor <whatever-you-gave-for-main-on-package.json

所以你必须在.openshift/markers下添加一个名为use_npm的空文件。 然后提交更改并部署。 然后它应该启动你的项目的./bin/www服务器,同时你还需要使用node $OPENSHIFT_REPO_DIR/bin/wwwstart package.json。

顺便说一句,你没有在这里给你的package.json的主要部分。