Question

J'ai commencé à jouer avec Koa, mais jusqu'à présent, nous n'avons pas réussi à trouver une solution décente pour recharger automatiquement l'application en cas de modification du code.

Ma compréhension est que nœudmon est la solution préférée dans l'univers Node, mais j'obtiens des erreurs à cause du --harmony drapeau (requis par Koa) :

$ 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...
Était-ce utile?

La solution

node_modules/.bin/nodemon --harmony-generators app.js devrait être suffisant

Autres conseils

J'aimerais vous recommander "PM2": http://pm2.keymetrics.io/

PM2 est un gestionnaire de processus. Il gère vos États-Unis, de sorte que vous puissiez démarrer, arrêter, redémarrer et supprimer des processus.

Vous pouvez facilement installer PM2 (généralement sur votre ordinateur) en tapant: sudo npm install -g pm2

Fondamentalement PM2 Lorsque vous voyez des modifications dans votre code, il redémarre votre processus, si votre processus s'écrase, il sera redémarré et que l'erreur sera enregistrée. Pour plus d'informations, jetez un coup d'œil sur la page de documentation: http://pm2.keymetrics.io/docs/usage/cluster-mode/

Réglage de l'option 'Execmap' dans cette tâche du gorge fonctionne pour moi:

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);
});

Évidemment, vos autres options peuvent différer, mais j'ai inclus le tout, car cela m'empêche quand j'apprends quelque chose pour voir le strict minimum dans une réponse.

J'ai récemment fini de créer une API Web simple à l'aide de KOA, et comme pour une action de recharge après des modifications de code, j'ai utilisé Babel-Watch

L'avantage de l'utilisation est déjà indiqué dans le repo:

Si vous êtes fatigué d'utiliser Babel-Noode avec NODEMON (ou une solution similaire).La raison pour laquelle la configuration susmentionnée fonctionne si mal est l'heure de démarrage de Babel-noeud lui-même.Babel-Watch commence que Babel dans le processus "Master" où il démarre également l'observateur de fichiers.La transpilation est effectuée dans ce processus également.Sur les événements de l'observateur de fichiers, il reproche un processus de nœud pur et passe le code transformé du processus parent avec les cartes source.Cela nous permet d'éviter de charger Babel et de tous ses DEP à chaque fois que nous redémarrons le script / application JS.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top