使用grunt运行2个异步任务

10 javascript node.js coffeescript gruntjs

我正在开发一个小节点项目,我使用coffeescript而不是客户端代码.我正在尝试使用grunt设置我的开发环境.我已经实现了运行服务器的自定义grunt任务,如下所示:

start = require './start' #just a function to start express.js application
grunt.registerTask 'server', 'Starting server', ->
    grunt.log.write 'Preparing server to start'
    done = do @async
    start (err) ->
        grunt.log.write "server running at localhost:4000"
Run Code Online (Sandbox Code Playgroud)

我还想使用grunt-contrib-watch插件运行"watch"任务:

grunt.initConfig
    watch:
        coffee:
            files: ['public/coffee/**/*.coffee']
            tasks: ['coffee']
        jade:
            files: ['public/jade/**/*.jade']
            tasks: ['jade']
        less:
            files: ['public/less/**/*.less']
            tasks: ['less']
Run Code Online (Sandbox Code Playgroud)

问题是:如何让这两个任务(手表和服务器)同时运行?我希望服务器启动并运行,并且不希望每次更改某些客户端代码时重新加载它.提前致谢

az7*_*7ar 8

您可以使用以下两个包中的任何一个同时运行两个或更多任务:

  1. 咕噜平行
  2. 咕噜并发


tbr*_*yen 5

将它作为您的监视任务的前缀,并摆脱done = do @async服务器内部的任务.

tasks: ['server', 'coffee']

您希望在Grunt配置中指定一个选项,以使服务器任务"长时间运行".然后,@async只有在需要长时间运行时才能调用(没有监视任务).

  • 我糊涂了.他希望服务器总是长时间运行,并且他希望手表能够长时间运行,并希望它们能够通过一次咕噜声同时在同一时间运行.这就是你在这里取得的成就吗?看起来不像 (3认同)