Frage

Ich habe angefangen herumzuspielen mit Koa, aber bisher konnten wir keine anständige Lösung finden, um die Anwendung bei Codeänderungen automatisch neu zu laden.

Mein Verständnis ist das nodemon ist die bevorzugte Lösung im Knotenuniversum, aber ich erhalte Fehler aufgrund der --harmony flagge (von Koa benötigt):

$ node_modules/.bin/nodemon /path/to/node-unstable/bin/node app.js
/path/to/node-unstable/bin/node --harmony $@
                     ^^^^^^^
SyntaxError: Unexpected identifier
[nodemon] app crashed - waiting for file changes before starting...
War es hilfreich?

Lösung

node_modules/.bin/nodemon --harmony-generators app.js sollte ausreichen

Andere Tipps

Ich würde Ihnen gerne "pm2" empfehlen : http://pm2.keymetrics.io/

pm2 ist ein Prozessmanager.Es verwaltet Ihre Anwendungszustände, sodass Sie Prozesse starten, stoppen, neu starten und löschen können.

Sie können pm2 (in der Regel auf Ihrem Computer) einfach installieren:sudo npm installieren -g pm2

Grundsätzlich pm2, wenn Sie einige Änderungen in Ihrem Code sehen, startet er Ihren Prozess sofort neu, wenn Ihr Prozess abstürzt, wird er neu gestartet und der Fehler wird protokolliert..Weitere Informationen finden Sie auf der Dokumentationsseite:http://pm2.keymetrics.io/docs/usage/cluster-mode/

Das Setzen der Option 'execMap' in dieser Schluckaufgabe funktioniert bei mir:

var nodemon = require('gulp-nodemon');

gulp.task('serve-dev', function() {
    var options = {
        script: './src/server/app.js',
        execMap: { 
            "js": "node --harmony"
        },
        delayTime: 1,
        env: {
            'PORT': port,
            'NODE_ENV': 'dev'
        },
        watch: ['./src/server/']
    };

    return nodemon(options);
});

Natürlich können sich Ihre anderen Optionen unterscheiden, aber ich habe das Ganze aufgenommen, da es mich ärgert, wenn ich etwas lerne, um nur das Nötigste in einer Antwort zu sehen.

Ich habe vor kurzem die Erstellung einer einfachen Web-API mit KOA abgeschlossen und eine Reload-Aktion nach Codeänderungen verwendet, die ich verwendet habe babel-Uhr

Der Vorteil der Verwendung ist bereits im Repo angegeben:

Wenn Sie es satt haben, babel-node zusammen mit nodemon (oder einer ähnlichen Lösung) zu verwenden.Der Grund, warum das oben genannte Setup so schlecht funktioniert, ist die Startzeit von babel-node selbst.babel-watch startet babel nur im "Master" -Prozess, wo es auch den Dateibeobachter startet.Die Transpilation wird auch in diesem Prozess durchgeführt.Bei Dateibeobachterereignissen wird ein reiner Knotenprozess erzeugt und transpilierter Code vom übergeordneten Prozess zusammen mit den Quellkarten übergeben.Dies ermöglicht es uns, das Laden von Babel und all seinen Deps bei jedem Neustart des JS-Skripts / der JS-App zu vermeiden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top