Вопрос

Я начал играть с Koa, но до сих пор не смогли найти достойное решение для автоматической перезагрузки приложения при изменении кода.

Мое понимание таково, что нодемон является предпочтительным решением во вселенной узлов, но я получаю ошибки из-за --harmony флаг (требуется 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...
Это было полезно?

Решение

node_modules/.bin/nodemon --harmony-generators app.js должно быть достаточным

Другие советы

Я хотел бы порекомендовать вам "pm2". : http://pm2.keymetrics.io/

pm2 - это менеджер процессов.Он управляет состояниями ваших приложений, так что вы можете запускать, останавливать, перезапускать и удалять процессы.

Вы можете легко установить pm2 (обычно на свой компьютер), набрав:установка sudo npm - g pm2

В принципе, pm2, когда видит некоторые изменения в вашем коде, он немедленно перезапускает ваш процесс, если ваш процесс завершится сбоем, он будет перезапущен, и ошибка будет зарегистрирована..Для получения дополнительной информации ознакомьтесь со страницей документации:http://pm2.keymetrics.io/docs/usage/cluster-mode/

Установка параметра 'execMap' в этой задаче gulp работает для меня:

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

Очевидно, что ваши другие варианты могут отличаться, но я включил все это целиком, поскольку меня раздражает, когда я изучаю что-то, чтобы видеть в ответе только минимум.

Недавно я закончил создание простого веб-API с использованием KOA, и что касается действия перезагрузки после изменения кода, которое я использовал вавилон-смотреть

Преимущество его использования уже указано в репозитории:

Если вы устали использовать babel-node вместе с nodemon (или аналогичным решением).Причина, по которой вышеупомянутая настройка выполняется так плохо, заключается во времени запуска самого babel-node.babel-watch запускает babel только в "главном" процессе, где он также запускает средство просмотра файлов.Транспиляция также выполняется в этом процессе.При событиях file-watcher он порождает процесс чистого узла и передает перенесенный код из родительского процесса вместе с исходными картами.Это позволяет нам избежать загрузки babel и всех его deps каждый раз, когда мы перезапускаем JS script / app.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top