相关疑难解决方法(0)

通过Grunt运行Node应用程序

我正在尝试将我的Node应用程序作为Grunt任务运行.但是,我需要将其作为子进程生成,以允许我并行运行监视任务.

这有效:

grunt.registerTask('start', function () {
  grunt.util.spawn(
    { cmd: 'node'
    , args: ['app.js']
    })

  grunt.task.run('watch:app')
})
Run Code Online (Sandbox Code Playgroud)

但是,当监视任务检测到更改时,这将再次触发启动任务.在我生成我的Node应用程序的另一个子进程之前,我需要杀死前一个.

但是,我无法弄清楚如何杀死这个过程.这样的东西不起作用:

var child

grunt.registerTask('start', function () {
  if (child) child.kill()
  child = grunt.util.spawn(
    { cmd: 'node'
    , args: ['app.js']
    })

  grunt.task.run('watch:app')
})
Run Code Online (Sandbox Code Playgroud)

看起来:

  1. 即使我将生成的进程存储在函数上下文之外的变量中,它也不会持久存在,因此下次启动任务时,child就是undefined.
  2. child没有kill功能......

process spawn node.js gruntjs

13
推荐指数
2
解决办法
1万
查看次数

如何让grunt.js启动一个快速应用程序进行测试

我目前的情况是我使用grunt制作我的快递应用程序的生产版本(最小化并合并所有js/css,复制所有文件到位)然后我必须运行一个设置环境变量的脚本(我的应用程序)仅用于在测试模式下运行时,测试工具),创建一个空的Mongo的测试数据库,然后调用的应用程序目录NPM启动,然后我手动不得不从Chrome浏览或虚拟运行测试,我想要做的是有grunt设置环境变量并运行服务器,运行测试,然后停止服务器(将来如果一切都成功,那么部署它也会很好).但是,当我尝试在grunt中运行应用程序时,它会在完成后立即停止.

如何让grunt启动应用程序,等到它启动然后运行测试?

unit-testing node.js gruntjs

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

gruntjs ×2

node.js ×2

process ×1

spawn ×1

unit-testing ×1