9

ノードアプリを Heroku にデプロイしていますが、定義したのではなく nodemon で呼び出そうとしていnode app.jsます。私のProfileは次のようになります:

web: npm start

Heroku にプッシュすると、dyno が次のエラーでクラッシュします。

2014-03-24T19:24:59.669412+00:00 app[web.1]: > my-app@0.0.1 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

nodemon を package.json の依存関係としてインストールする npm を試し、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"
    }
}

アップデート

ずっとぶら下がっていてごめんなさい!私が正しく覚えていれば、最終的に私の問題は、Procfile の web: ロールをオーバーライドしていたビルドパックでした。

それ以来、別のビルドパックに切り替えました: ddollar/heroku-buildpack-multi

次の .buildpacks ファイルを使用します。

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

私のProfileは次のようになります。

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

4 に答える 4

12

Change your Procfile to this:

web: node app.js

Being app.js the entry point to your app.

This is assuming you don't really need nodemon in your app, since you have listed it at the package.json sample you provided.

于 2014-03-24T19:56:30.193 に答える
0

依存関係としてではなく、開発依存関係として nodemon を含めます。

このコマンドを使用して nodemon を削除します。

npm uninstall nodemon

ノードモンをインストールします

npm install -D nodemon

本番環境または展開環境では、nodemon を使用しないでください。

于 2020-12-13T05:26:52.360 に答える