9

我已经开始玩Koa了,但到目前为止还没有找到一个像样的解决方案来在代码更改时自动重新加载应用程序。

我的理解是nodemon是 Node 世界中的首选解决方案,但由于--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...
4

5 回答 5

15

node_modules/.bin/nodemon --harmony-generators app.js应该足够了

于 2014-02-27T09:04:56.650 回答
3

我想向您推荐“pm2”:http://pm2.keymetrics.io/

pm2 是一个进程管理器。它管理您的应用程序状态,因此您可以启动、停止、重新启动和删除进程。

您可以轻松安装 pm2(通常在您的机器上)输入:sudo npm install -g pm2

基本上 pm2 当看到你的代码有一些变化时,他会立即重新启动你的进程,如果你的进程崩溃,他将重新启动并记录错误。有关更多信息,请查看文档页面: http://pm2.keymetrics .io/docs/usage/cluster-mode/

于 2016-12-08T10:19:38.120 回答
1

在这个 gulp 任务中设置 'execMap' 选项对我有用:

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

显然,您的其他选择可能会有所不同,但我包括了整个事情,因为当我学习一些东西时,它只会让我看到答案中的最低限度。

于 2015-07-08T18:28:33.437 回答
0

我的 Koa 服务器运行良好

nodemon server.js

于 2021-04-02T10:33:28.467 回答
0

我最近使用 KOA 创建了一个简单的 Web API,至于代码更改后的重新加载操作,我使用了babel-watch

使用它的好处已经在 repo 中说明:

如果您厌倦了将 babel-node 与 nodemon(或类似解决方案)一起使用。上述设置执行如此糟糕的原因是 babel-node 本身的启动时间。babel-watch 仅在“master”进程中启动 babel,它还启动文件观察程序。转译也在该过程中执行。在文件观察器事件中,它生成一个纯节点进程,并将来自父进程的转译代码与源映射一起传递。这使我们可以避免每次重新启动 JS 脚本/应用程序时加载 babel 及其所有依赖项。

于 2017-04-17T10:41:53.367 回答