例如,我定义了自己的名为jasmine的任务.它基于任务服务器.
如果我打电话给grunt服务器jasmine – 没关系.但我想在我的任务中声明依赖.
grunt.task.run – 将任务添加到队列中(在我的任务之后).
grunt.task.requires – 只检查依赖关系,不运行它…
附:我不想创建jasmine_orig任务,然后创建.registerTask(‘jasmine’,’server jasmine_orig’).看起来很傻.
解决方法
当前编写服务器任务的方式,这是不可能的.但是,您可以使用
grunt-connect plugin或
rolling your own grunt服务器任务执行所需操作.内置源的来源如下:
https://github.com/gruntjs/grunt/blob/0.3-stable/tasks/server.js
正如您所看到的,除了读取配置,启动连接服务器以及可能在传递–debug时记录,除此之外没有太多内容.事实上,您可以将所有代码复制到一个帮助程序中(我很害怕),并从您的jasmine任务中调用它.
为测试启动一个单独的服务器(测试独立性)可能是一个好主意,但是如果你出于某种原因需要保存资源,或者你发现其他方面有多个令人讨厌的服务器,你将不得不写一些自定义任务代码检查服务器是否在那里,然后启动服务器,如果不是.
可能最好的解决方案如下:
>安装grunt-contrib-connect npm包:
npm install grunt-contrib-connect --save-dev
>为您的开发和测试环境进行配置:
connect: { dev: { base: 'path/to/serve',port: 8000 },test: { base: 'path/to/serve',port: 8001 } }
>为您注册运行grunt server:test jasmine的测试任务.
grunt.registerTask('test','server:test jasmine')