【问题标题】:Yeoman - How to add express server task to Gruntfile.js generated by generator-angularYeoman - 如何将快速服务器任务添加到由 generator-angular 生成的 Gruntfile.js
【发布时间】:2014-01-05 14:53:24
【问题描述】:

grunt 新手,我正在尝试将 express 服务器添加到我的 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 添加什么?


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

【问题讨论】:

  • 有趣的问题。你试过npmjs.org/package/grunt-express 吗?
  • 不,我已经开始开发我的应用了...我正在尝试将自定义服务器集成到已经运行的应用中

标签: javascript angularjs express gruntjs yeoman


【解决方案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());
});

【讨论】:

  • 感谢您的回复...但是我收到以下错误 'D:\dev\wamp\www\LPSocial\node_modules\grunt-contrib-compass\node_modules\tmp\lib\tmp.js :261 抛出错误; ^ 错误:听 EADDRINUSE '
  • @ShlomiSchwartz 您有另一个在 8080 上运行的服务器处于活动状态 - 将端口更改为 8081 或其他任何内容。
【解决方案2】:

请查看 grunt-express:https://github.com/blai/grunt-express

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

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

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-06-27
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    相关资源
    最近更新 更多