Es scheint, der lokale Server begann mit "Heroku lokalen Web" nicht für Dateiänderungen suchen und neu starten. Wie kann ich es dazu bringen?Restart Heroku lokal bei Dateiänderung?
Antwort
Ich denke, dass heroku local
wird watch
für Änderungen an statischen Ressourcen (clientseitige Code). Es ist jedoch offensichtlich nicht ideal, den Server manuell mit jedem Quellcode zu starten, den Sie am Webserver vornehmen (serverseitiger Code).
Wenn Sie eine NodeJS-Anwendung erstellen, ist mein Vorschlag, den Befehl watch
, den Gulp bietet, zu versuchen. Dies erfordert jedoch auch, dass Sie (a) Gulp installieren und (b) das Gulp-Skript schreiben. Wieder würde diese Lösung nur für NodeJS funktionieren, und diese Schritte wären nicht erforderlich, wenn heroku local
die Dateien für Sie angesehen würden.
- Installieren NodeJS
Installieren Gulp
npm install gulp --save-dev
das Gulp Skript hinzufügen (wo procfile lebt)
Hinweis: nicht in der Lage, die folgenden
watch
Code zu erhalten, arbeiten erfolgreich, aber es könnte eine Vorlage für andere zur Verfügung stellen, um eine funktionierende Lösung zu erstellen.var gulp = require('gulp'); var exec = require('child_process').exec; gulp.task('heroku-local', function() { exec("heroku local"); }); gulp.task('heroku-local:watch', function() { gulp.watch([ 'file-to-watch', 'folder-to-watch/**/*' ], ['heroku-local']); });
Führen Sie das Skript Gulp (von Verzeichnis, in dem procfile lebt)
gulp heroku-local:watch
heroku local
nur verwendet node-foreman
(https://www.npmjs.com/package/heroku-local), so dass es leichter ist, dass für das Ansehen direkt zu verwenden.
Zuerst installieren foreman
und nodemon
:
npm i --save-dev foreman nodemon
Nun müssen Sie zwei Skripte in Ihrem package.json
einzurichten:
{
...
"scripts": {
"start": "nf start",
"watch": "nodemon --watch directory-to-watch"
},
...
}
Sie jetzt die App ausführen können, während sie das Verzeichnis Uhren und lädt bei Änderungen mit
npm run watch
Der einfachste Weg, dies zu tun, ist, nodemon mit heroku local
als ausführbare Datei auszuführen - also nodemon --exec "heroku local"
.
heroku local
wird jedoch mit einem Nicht-Null-Exit-Code für das standardmäßige Nodemon-Shutdown-Signal (SIGUSR2) beendet. Daher müssen Sie nodemon ein zusätzliches Flag hinzufügen, um das Interrupt-Signal auf SIGTERM zu setzen.
nodemon --exec "heroku local" --signal SIGTERM
(getestet mit [email protected], [email protected], [email protected])
Dies funktioniert wie gewünscht - neu starten' heroku local' mit allen Änderungen. –
Funktioniert gut! Vielen Dank! – ohjeeez
- 1. Neustart bei Dateiänderung unter Linux
- 2. Umgebungsvariablen lokal und Heroku
- 3. Unterbrechungspunkt bei Dateiänderung oder Datei öffnen
- 4. PM2 nicht Dateiänderung bei Vagrant Maschine beobachtet
- 5. Inotify nicht feuern Benachrichtigungen bei Dateiänderung
- 6. Ausführen von Karma-Tests nur bei Dateiänderung
- 7. Laufen Heroku Cedar lokal mit Vagrant
- 8. Heroku H10-Fehler, wenn es lokal funktioniert
- 9. ActiveRecord PGError auf Heroku nicht lokal
- 10. Parse Dashboard - arbeitet lokal, blank auf Heroku
- 11. Heroku: Kein Rakefile (wohl aber lokal)
- 12. Java Heroku-Anwendung lokal mit Vorarbeiter ausgeführt
- 13. Schienen: Routen funktioniert lokal, nicht auf Heroku
- 14. Heroku-Bereitstellung fehlgeschlagen bei Shippable - Aufforderung, sich bei Heroku anzumelden
- 15. Go Auto-Re-Compiler und Reload Server bei Dateiänderung
- 16. Wie kann ich Flasche bei Dateiänderung neu starten?
- 17. Konflikte auf ignoriert Dateiänderung
- 18. Restart Leinwand javascript
- 19. node.js shutdown/restart observer
- 20. Node.js mit Express-App stürzt auf Heroku, funktioniert lokal
- 21. Heroku PHP „Getting Started“ läuft nicht lokal auf OSX
- 22. Rails App funktioniert nicht lokal nur auf Heroku
- 23. Django-Fehler bei Collectstatic bei Verwendung von nested_inline auf heroku
- 24. Besteht bei Heroku ein Portabilitätsrisiko?
- 25. Erste ungültig Mongo ObjectId auf Heroku aber nicht lokal
- 26. Einrichten von Rails 3.2.2 App auf Heroku mit sqlite3 lokal
- 27. Monitor Dateiänderung - Asyncio und Flask
- 28. Dateiänderung während Rebase rückgängig machen
- 29. Rails 3, Migration funktioniert lokal, funktioniert nicht in Heroku?
- 30. Websocket arbeitet lokal, aber nicht auf Heroku - PHP-Anwendung
Dank. Aber es konnte nicht funktionieren ... – IsmailS
Haben Sie die 'spawn' Methode probiert? https://nodejs.org/api/child_process.html # child_process_child_process_spawn_command_args_options Das könnte funktionieren ... – tfmontague
Ich verwende den Gulp Watcher, um Knotenprozess zu beenden, indem ich eine spezielle Route, die ich erstellt habe, '/ killme' besuche und dann wieder starte. Natürlich sollte diese URL nicht auf der Live-Website existieren, ist aber lokal nützlich. im gulpfile: 'exec ("curl http: // localhost: 5000/killme; Heroku local");' in meiner node.js/express App: '' 'router.get ('/ killme ', Funktion (req, res) { \t process.exit (1); }); '' ' – Lucas