这可能是常见问题解答,但浏览文档并没有帮助,我放弃了。
我必须运行一个涉及使用其他几个grunt任务的grunt任务。必须以不同方式配置每个任务。像这样:
grunt.initConfig({
clean : {
task1 : ["task1"],
task2 : ["task2"]
},
mkdir : {
task1 : {
options : {
create : ["task1"]
}
},
task2 : {
options : {
create : ["task2"]
}
}
}
});
...
grunt.registerTask("task1", ["clean:task1", "mkdir:task1"]);
grunt.registerTask("task2", ["clean:task2", "mkdir:task2"]);
我可以通过以下方式完成这项工作:
grunt task1
这很好用,但我不明白为什么“task1”的各个步骤必须分散在配置周围。此外,如果我有很多这样的任务,我的构建文件将变得无法管理。
所以我的问题:
用咕噜的说法,我应该称之为“task1”?这是一项任务吗?我该怎么称呼“mkdir:task1”?是子任务吗?任务配置?
在这种情况下,我该如何组织我的gruntfile?我是否必须为“task1”创建不同的npm项目?这个项目将如何看待(不要犹豫指向为完整的grunt noob编写此类任务的指南,我希望阅读任何超出的内容'这是我观看文件的巨大且无法保证的gruntfile,这不是很好吗? )
由于
答案 0 :(得分:0)
用咕噜的说法,我该怎么称呼“task1”?这是一项任务吗?我该怎么称呼“mkdir:task1”?是子任务吗?任务配置?
什么是task1?您是否正在构建HTML视图?你是连续/缩小脚本吗?此类内容的任务名称可能是buildviews
或compress
。命名任务没有正确或错误的方法,我建议只是描述性的。
在这种情况下,我该如何组织我的gruntfile?我是否必须为“task1”创建不同的npm项目?这个项目将如何看待(不要犹豫指向为完整的grunt noob编写此类任务的指南,我希望阅读任何超出的内容'这是我观看文件的巨大且无法保证的gruntfile,这不是很好吗? )
不,你不需要一个不同的npm项目。您似乎正在为您需要做的事情定义不同的配置选项。例如,如果您有rsync
任务,那么您可能会像我在此处所做的那样有不同的登台和制作选项:
rsync: {
staging: {
files: 'public/',
options: {
host: "mystaginghost.com",
remoteBase: "/page.com/htdocs",
}
},
styles: {
files: 'public/stylesheets/',
options: {
host: "myproductionhost.com",
remoteBase: "/production.com/htdocs/public/stylesheets/",
}
},
},
我可以通过从命令行调用grunt rsync:staging
或将我的任务设置为包含rsync:staging
来单独引用这些任务。
我建议浏览示例Gruntfiles以真正了解如何构建您的。
答案 1 :(得分:0)
如果您有许多类似的任务序列,那么您可以使用一个函数注册一个任务,该函数接收您发送给它的参数,而不是拥有10个任务,然后您将拥有一个任务。这将要求您的目标遵循通用的命名约定。