2016-04-13 8 views
0

Ich teste den Mern Stack aus (Mongo Express React/Redux Knoten) und richte ihn ohne Probleme mit der Entwicklung ein. Jetzt versuche ich nach Heroku zu deployen. Ich habe einen git Push Heroku Master wie normal, aber wenn ich auf der Website sehe ich Heroku's Application Error. Ich habe über Heroku eine MongoDB hinzugefügt und meine heroku config-Variablen geändert, sodass diese db verwendet wird (ich denke, ich habe das richtig gemacht). So prüfe ich in Scheite:Wie bekomme ich Mern Stack um mit Heroku zu arbeiten?

npm ERR! file sh 
npm ERR! code ELIFECYCLE 
npm ERR! errno ENOENT 
npm ERR! syscall spawn 
npm ERR! [email protected] start: `cross-env NODE_ENV=development nodemon index.js` 
npm ERR! spawn ENOENT 

Ein kleiner Weg nach unten:

> [email protected] start /app 
> cross-env NODE_ENV=development nodemon index.js 
    sh: 1: cross-env: not found 

Weiter unten:

npm ERR! Linux 3.13.0-79-generic 
npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start" 
npm ERR! node v5.10.0 
npm ERR! npm v3.8.3 
npm ERR! file sh 
npm ERR! code ELIFECYCLE 
npm ERR! errno ENOENT 
npm ERR! [email protected] start: `cross-env NODE_ENV=development nodemon index.js` 
npm ERR! syscall spawn 
npm ERR! spawn ENOENT 
npm ERR! 
npm ERR! Failed at the [email protected] start script 'cross-env NODE_ENV=development nodemon index.js'. 

Also ich weiß nicht so viel über das hintere Ende, aber es scheint das Entwicklungsskript in package.json auszuführen:

"scripts": { 
    "test": "mocha shared/tests/*.spec.js --compilers js:babel-register", 
    "test:server": "cross-env NODE_ENV=test PORT=8080 MONGO_URL=mongodb://localhost:27017/mern-test mocha --compilers js:babel-register --recursive server/tests/**/*.spec.js", 
    "start": "cross-env NODE_ENV=development nodemon index.js", 
    "start:prod": "cross-env NODE_ENV=production node index.js", 
    "bs": "npm run clean && npm run build && npm run start:prod", 
    "minify": "cleancss -o static/css/app.min.css static/css/app.css", 
    "build": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js && npm run minify", 
    "clean": "rimraf static/dist", 
    "slate": "rimraf node_modules && npm install", 
    "lint": "eslint client server shared" 
    } 

Also wie kann ich das zum Laufen bringen?

EDIT:

"devDependencies": { 
    "babel-eslint": "^5.0.0-beta6", 
    "babel-loader": "^6.2.1", 
    "babel-plugin-react-transform": "^2.0.0", 
    "babel-plugin-transform-react-constant-elements": "6.5.0", 
    "babel-plugin-transform-react-inline-elements": "6.6.5", 
    "babel-plugin-transform-react-remove-prop-types": "0.2.4", 
    "babel-polyfill": "^6.3.14", 
    "babel-preset-es2015": "^6.3.13", 
    "babel-preset-react": "^6.3.13", 
    "babel-preset-react-hmre": "^1.1.0", 
    "babel-register": "^6.7.2", 
    "chai": "^3.5.0", 
    "clean-css": "^3.4.9", 
    "cross-env": "^1.0.7", 
    "css-loader": "^0.23.1", 
    "css-modules-require-hook": "^2.1.0", 
    "deep-freeze": "0.0.1", 
    "eslint": "^1.10.3", 
    "eslint-config-airbnb": "^4.0.0", 
    "eslint-plugin-react": "^3.16.1", 
    "expect": "^1.13.4", 
    "expect-jsx": "^2.2.2", 
    "extract-text-webpack-plugin": "^1.0.1", 
    "mocha": "^2.4.5", 
    "nodemon": "^1.9.1", 
    "pre-commit": "^1.1.2", 
    "react-addons-test-utils": "^0.14.7", 
    "react-transform-hmr": "^1.0.1", 
    "redux-devtools": "^3.1.1", 
    "redux-devtools-dock-monitor": "^1.1.0", 
    "redux-devtools-log-monitor": "^1.0.4", 
    "rimraf": "^2.5.1", 
    "style-loader": "^0.13.0", 
    "supertest": "^1.1.0", 
    "webpack": "^1.12.12", 
    "webpack-dev-middleware": "^1.5.1", 
    "webpack-hot-middleware": "^2.6.4" 
    }, 
+0

Können Sie die Abhängigkeiten von package.json posten? Ist 'cross-env' enthalten? Oder können Sie bestätigen, dass Sie "npm install" ausgeführt haben, bevor Sie die Befehle ausführen? – lux

+0

Es wurde bearbeitet, um Dev-Abhängigkeiten anzuzeigen. Cross-Env ist da. Sollte es eine Abhängigkeit sein? – jro

+0

Und du hast 'npm install' vor' npm run >? – lux

Antwort

1

ich darüber schrieb hier: https://hashnode.com/post/deploying-mern-to-heroku-success-cio7sc1py013nis531rg3lfmz

Der Grund ist, weil herokou nicht über Ihre devDependencies Baum nicht kennt, nur Ihre regelmäßigen dependencies geschoben bekommen.

Eine schnelle Lösung ist, alle Ihre devDependencies zu Ihrem dependencies

Sie werden auch die folgenden entfernen .gitignore Datei kopieren:

public/* static/dist static/css/app.min.css

Es gibt ein paar andere Schritte, die ich in dem Artikel beschrieben, aber das sind die Hauptgründe, die es ohne einige zusätzliche Konfigurationen nicht funktionieren wird.

+0

Ich folgte Ihrem Tutorial, aber meine Anwendung startet nicht. Wenn ich den Befehl "heroku run node server.js" vom Heroku CLI-Server ausführen startet an Port 8080, kann aber nicht darauf zugreifen. sagt Anwendungsfehler. Ich habe einen mLab-Link als Datenbankpfad hinzugefügt (kein Dyno; da er mich zur Eingabe der Kreditkarte auffordert). Kannst du mir helfen, das herauszufinden? – HelpingHand

+0

Überprüfen Sie die Protokolle mit 'heroku logs --tail', die einen Einblick in den Fehler geben sollten, der den Absturz verursacht hat – jakeed1