Wygląda na to, że lokalny serwer został uruchomiony z "heroku local web" nie obserwuje zmian plików i restartuje się. Jak mogę to zrobić?Zrestartować Heroku lokalnego na zmianę pliku?
Odpowiedz
Myślę, że heroku local
będzie watch
dla zmian zasobów statycznych (kod po stronie klienta). Jednak nie jest to idealne rozwiązanie do ręcznego restartowania serwera przy każdej zmianie kodu źródłowego wprowadzanego na serwerze WWW (kod po stronie serwera).
Jeśli tworzysz aplikację NodeJS, moja sugestia polega na wypróbowaniu polecenia watch
, które zapewnia Gulp. Jednak wymaga to również (a) zainstalowania Gulp i (b) napisania skryptu Gulp. Znowu to rozwiązanie będzie działać tylko dla NodeJS, a te kroki nie będą potrzebne, jeśli heroku local
obejrzy pliki dla ciebie.
- Install NodeJS
Install Gulp
npm install gulp --save-dev
Dodaj skrypt haustem (gdzie Procfile mieszka)
UWAGA: Nie byłem w stanie uzyskać następujący kod do
watch
działa z powodzeniem, ale może stanowić szablon dla innych, aby stworzyć działające rozwiązanie.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']); });
Uruchom skrypt Gulp (z katalogu, w którym Procfile mieszka)
gulp heroku-local:watch
heroku local
prostu wykorzystuje node-foreman
(https://www.npmjs.com/package/heroku-local), więc jest łatwiejsza w użyciu, które bezpośrednio do oglądania.
Najpierw należy zainstalować foreman
i nodemon
:
npm i --save-dev foreman nodemon
Teraz trzeba skonfigurować dwa skrypty w package.json
:
{
...
"scripts": {
"start": "nf start",
"watch": "nodemon --watch directory-to-watch"
},
...
}
Teraz można uruchomić aplikację, podczas gdy on ogląda ten katalog i ładuje się po zmianach za pomocą
Najprostszym sposobem na to jest uruchomienie nodemon z heroku local
jako plik wykonywalny - tj. nodemon --exec "heroku local"
.
Jednakże, heroku local
wychodzi z niezerowym kodem wyjścia dla domyślnego sygnału wyłączenia nodemon (SIGUSR2), więc musisz dodać dodatkową flagę do nodemon, aby ustawić sygnał przerwania na SIGTERM.
nodemon --exec "heroku local" --signal SIGTERM
(testowane [email protected], [email protected], [email protected])
Działa zgodnie z życzeniem - restartując' heroku local' z dowolnymi zmianami. –
Działa świetnie! Dzięki! – ohjeeez
- 1. Jak zrestartować pracownika Heroku użyciu Heroku gem
- 2. Jaki jest prawidłowy sposób na zmianę nazwy aplikacji heroku?
- 3. SCP Plik od lokalnego do Heroku Server
- 4. Jak poprawnie reagować na zmianę pliku
- 5. Heroku: Obsługa dużych, dynamicznie generowanych zasobów bez lokalnego systemu plików
- 6. Pierwsze AVURLAsset lokalnego pliku audio
- 7. AVPlayerStatus dla pliku lokalnego niegotowy
- 8. Jak sprawdzić istnienie pliku lokalnego?
- 9. Jak zrestartować \ numerowanie przypisów na każdej stronie
- 10. Jak zrestartować Postgresql
- 11. Migrowanie bazy danych z lokalnego rozwoju do Heroku-Django 1.8
- 12. Jak zrestartować usługę RabbitMQ
- 13. Jak zrestartować wątek w java?
- 14. Nie można wcisnąć do Heroku po dodaniu pilota Heroku repo do mojego istniejącego lokalnego repo
- 15. jak zrestartować repozytorium git
- 16. Jakie systemy plików pozwalają na zmianę położenia początku pliku?
- 17. Jak zrestartować Meteor
- 18. Jak zrestartować Scrapy pająka
- 19. Jak bezpiecznie zrestartować TortoiseSVN?
- 20. Używanie Prawn na Heroku
- 21. Jak pobrać dane z lokalnego pliku JSON na reakcję natywną?
- 22. Bad deskryptor pliku - Heroku Foreman
- 23. Konwertowanie lokalnego pliku repo svn do git
- 24. Jak utworzyć hiperłącze do lokalnego pliku wykonywalnego?
- 25. Jak zrestartować/zatrzymać serwer arangodb na mac osx
- 26. Załaduj UIWebView za pomocą lokalnego pliku CSS
- 27. Ścieżka do mapy lokalnego pliku ASP.NET/MVC
- 28. Phantomjs przy użyciu lokalnego pliku z page.includeJs?
- 29. Synchronizowanie lokalnego pliku sqlite z iCloud
- 30. Pobieranie zawartości lokalnego pliku bez przesyłania
Dzięki. Ale nie mógł sprawić, żeby działało ... – IsmailS
Czy próbowałeś metody "odradzania"? https://nodejs.org/api/child_process.html # child_process_child_process_spawn_command_args_options To może zadziałać ... – tfmontague
Używam obserwatora łyka, aby zakończyć proces węzła, odwiedzając specjalną trasę, którą utworzyłem, '/ killme', a następnie uruchamiając ją ponownie. Oczywiście ten URL nie powinien istnieć na stronie internetowej na żywo, ale jest przydatny lokalnie. w gulpfile: 'exec ("curl http: // localhost: 5000/KillMe; Heroku lokalny");' w moich node.js/express aplikacja: '' 'router.get ('/ KillMe ', function (req, res) { \t process.exit (1); }); '' ' – Lucas