微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何定义基于其他任务的grunt任务?

例如,我定义了自己的名为jasmine的任务.它基于任务服务器.

如果我打电话给grunt服务器jasmine – 没关系.但我想在我的任务中声明依赖.

grunt.task.run – 将任务添加到队列中(在我的任务之后).
grunt.task.requires – 只检查依赖关系,不运行它…

在我的jasmine任务之前是否存在运行服务器任务的方法

附:我不想创建jasmine_orig任务,然后创建.registerTask(‘jasmine’,’server jasmine_orig’).看起来很傻.

解决方法

当前编写服务器任务的方式,这是不可能的.但是,您可以使用 grunt-connect pluginrolling 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')

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐