Heroku 无法启动我的节点应用程序,因为它尝试使用 nodemon 来启动它

2024-05-01

我正在将我的节点应用程序部署到 Heroku,它尝试使用 nodemon 而不是调用它node app.js我已经定义了。我的 Procfile 看起来像这样:

web: npm start

当我推送到 heroku 时,dyno 崩溃并出现以下错误:

2014-03-24T19:24:59.669412+00:00 app[web.1]: > [email protected] /cdn-cgi/l/email-protection start /app
2014-03-24T19:24:59.669412+00:00 app[web.1]: > nodemon app.js
2014-03-24T19:24:59.669412+00:00 app[web.1]:
2014-03-24T19:24:59.669412+00:00 app[web.1]:
2014-03-24T19:24:59.710228+00:00 app[web.1]:
2014-03-24T19:24:59.701246+00:00 app[web.1]: sh: nodemon: not found

我什至尝试 npm 将 nodemon 安装为 package.json 依赖项,并检查 node_modules/nodemon 但没有运气。 (nodemon需要安装npm install nodemon -g无论如何)

有任何想法吗?

我的package.json:

{
    "name": "my-app",
    "version": "0.0.1",
    "private": true,
    "main": "app.js",
    "scripts": {
        "start": "node app.js"
    },
    "dependencies": {
        "requirejs": "~2.1.10",
        "underscore": "~1.5.2",
        "express": "~3.4.8",
        "ejs": "~0.8.5",
        "less-middleware": "~0.1.15",
        "socket.io": "~0.9.16",
        "tail": "~0.3.5",
        "async": "~0.2.10",
        "mongoose": "~3.8.5",
        "mkdirp": "~0.3.5",
        "ejs-locals": "~1.0.2",
        "aws-sdk": "~2.0.0-rc8",
        "knox": "~0.8.8",
        "connect-multiparty": "~1.0.3",
        "uuid": "~1.4.1",
        "nodemon": "~1.0.14"
    },
    "devDependencies": {
        "grunt": "~0.4.2",
        "grunt-contrib-clean": "~0.5.0",
        "grunt-contrib-copy": "~0.4.1",
        "grunt-contrib-requirejs": "~0.4.1",
        "grunt-recess": "~0.5.0",
        "grunt-contrib-cssmin": "~0.7.0",
        "grunt-mocha-test": "~0.9.0",
        "grunt-forever": "~0.4.1",
        "matchdep": "~0.3.0",
        "jshint": "~2.4.3",
        "precommit-hook": "~0.3.10",
        "mocha": "~1.17.1",
        "supertest": "~0.9.0",
        "chai": "~1.9.0",
        "sinon": "~1.8.2",
        "karma-sinon": "~1.0.2",
        "karma-script-launcher": "~0.1.0",
        "karma-chrome-launcher": "~0.1.2",
        "karma-firefox-launcher": "~0.1.3",
        "karma-requirejs": "~0.2.1",
        "karma-html2js-preprocessor": "~0.1.0",
        "karma-jasmine": "~0.1.5",
        "karma-coffee-preprocessor": "~0.1.3",
        "karma-phantomjs-launcher": "~0.1.2",
        "karma": "~0.10.9",
        "karma-mocha": "~0.1.1",
        "grunt-karma": "~0.6.2",
        "karma-chai": "~0.1.0"
    },
    "config": {
        "precommit": {
            "lint": true
        }
    },
    "engines": {
        "node": "0.10.x"
    }
}

Update

很抱歉让大家一直悬而未决!如果我没记错的话,我的问题最终是我的构建包覆盖了我的 Procfile 中的 web: 角色。

从那以后我改用了不同的构建包,即: ddollar/heroku-buildpack-multi

使用以下 .buildpacks 文件:

ryandotsmith/nginx-buildpack
heroku/heroku-buildpack-nodejs

我的 Procfile 看起来像这样:

web: bin/start-nginx ./node_modules/.bin/forever --minUptime 10000 --spinSleepTime 1000 app.js

改变你的Procfile对此:

web: node app.js

Being app.js您的应用程序的入口点。

这是假设你真的不需要nodemon在您的应用程序中,因为您已将其列出在package.json您提供的样本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Heroku 无法启动我的节点应用程序,因为它尝试使用 nodemon 来启动它 的相关文章

随机推荐