Yeoman - 如何将express服务器任务添加到generator-angular生成的Gruntfile.js

时间:2014-01-05 14:53:24

标签: javascript angularjs express gruntjs yeoman

grunt新手,我正在尝试将快速服务器添加到我的AngularJS应用程序中(由Yoeman生成)。

我已经修改了以下任务:

grunt.registerTask('server', function () {
    grunt.log.writeln('Starting web server on port 8080.');
    var server = require('./server.js');
    server.listen(8080);
});

我的server.js看起来像这样:

var express = require('express');
var app = module.exports = express();

app.get('/', function(req, res){
    res.send('hello world');
});

运行server task会产生以下输出:

Running "server" task
Starting web server on port 8080.

Done, without errors.

如果我在端口8080上我的本地主机,我可以看到服务器处于脱机状态。很明显,任务退出了。为什么?为了让基本服务器启动并运行,我需要添加到Gruntfile中?


编辑:我想我需要以某种方式为我的任务添加一个keepalive选项,我只是不确定如何。

2 个答案:

答案 0 :(得分:1)

您需要将其作为异步任务运行。这样做:

grunt.registerTask('server', function () {
    grunt.log.writeln('Starting web server on port 8080.');
    var server = require('./server.js');
    server.listen(8080).on('close',this.async());
});

答案 1 :(得分:0)

请在https://github.com/blai/grunt-express

查看grunt-express

此插件允许您使用自己的快速应用程序脚本启动快速服务器。

请注意,只要grunt正在运行,此服务器就会运行。一旦grunt的任务完成,Web服务器就会停止。可以通过在任务列表末尾添加express-keepalive任务来更改此行为