Pergunta

Eu comecei a brincar com Koa, mas até agora não conseguimos encontrar uma solução decente para recarregar automaticamente o aplicativo após alterações no código.

Meu entendimento é que nómon é a solução preferida no universo Node, mas estou recebendo erros devido ao --harmony bandeira (exigida por 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...
Foi útil?

Solução

node_modules/.bin/nodemon --harmony-generators app.js deve ser suficiente

Outras dicas

Eu gostaria de recomendar a você "pm2": http://pm2.keymetrics.io/

pm2 é um gerenciador de processos.Ele gerencia os estados de seus aplicativos, para que você possa iniciar, parar, reiniciar e excluir processos.

Você pode instalar facilmente o pm2 (geralmente em sua máquina) digitando:sudo npm instalar -g pm2

Basicamente o pm2 ao ver algumas alterações no seu código, ele reinicia o seu processo instantaneamente, se o seu processo travar ele será reiniciado e o erro será registrado.Para mais informações, dê uma olhada na página de documentação:http://pm2.keymetrics.io/docs/usage/cluster-mode/

Definir a opção 'execMap' nesta tarefa gulp funciona para mim:

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

Obviamente, suas outras opções podem ser diferentes, mas incluí tudo, pois me irrita quando estou aprendendo algo ver apenas o mínimo em uma resposta.

Recentemente, terminei de criar uma API da web simples usando KOA e, quanto a uma ação de recarregamento após alterações de código, usei relógio babel

A vantagem de usá-lo já está declarada no repo:

Se você está cansado de usar babel-node junto com nodemon (ou solução similar).A razão pela qual a configuração mencionada acima funciona tão mal é o tempo de inicialização do próprio babel-node.babel-watch apenas inicia o babel no processo "mestre", onde também inicia o observador de arquivos.A transpilação também é realizada nesse processo.Em eventos do file-watcher, ele gera um processo de nó puro e passa o código transpilado do processo pai junto com os mapas de origem.Isso nos permite evitar o carregamento do babel e de todas as suas dependências toda vez que reiniciamos o script/aplicativo JS.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top