Grunt.js模板:在任务中使用目标的名称
Grunt.js templates: Use the name of the target in a task?
我正在尝试在模板中使用目标的名称。应该足够简单,对吧?
我的场景是:
copy:
{
all: {
src: 'commonFiles/**', dest: 'build/<%= grunt.???? =>/common'
},
apple: { ... },
orange:{ ... },
banana:{ ... },
...
}
grunt.registerTask('default', ['apple', 'orange', 'banana']);
grunt.registerTask('apple' , 'copy:all copy:apples ... ... ...');
grunt.registerTask('orange', 'copy:all copy:orange ... ... ...');
grunt.registerTask('banana', 'copy:all copy:banana ... ... ...');
grimt.registerTask(...);
...
many, many more fruit
我已经搜索了文档,我已经console.log的grunt
,但没有找到父任务的字符串。我发现最接近的是grunt.task.current.name
,但最终是copy:all
。
目标是为我所有的水果获得这样的目录结构:
build/apple/common/...
build/orange/common/...
build/banana/common/...
build/.../common/...
...
commonFiles/...
我要送一个水果篮给任何能想出这个办法的人。
动态别名任务可能更适合此用例。看见http://gruntjs.com/frequently-asked-questions#dynamic-别名任务
grunt.initConfig({
buildDir: 'all',
copy: {
all: {
src: 'commonFiles/**',
dest: 'build/<%= buildDir =>/common',
},
apple: { ... },
orange:{ ... },
banana:{ ... },
},
});
grunt.registerTask('build', function(target) {
if (target == null) {
return grunt.warn('Build target must be specified, like build:apple.');
}
grunt.config('buildDir', target);
grunt.task.run('copy:' + target);
});
相关文章:
- 强制模板刷新ember.js
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 如何将JSON数据导入我的ejs模板
- 我的模板未被解析
- 主干模板:index.jst.eco到index.jst.ejs
- 在underscorejs模板中使用闭包
- angularjs+rails应用程序中未显示模板
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 以可优化的方式使用requirejs加载模板
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- Jquery模板,如果xx&&如果yy
- 从ng模板访问作用域
- 我的django模板布尔变量是't在javascript中按预期工作
- 访问jsrender模板中的全局javascript变量并更新它
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 聚合物0.5.5:核心列表中的条件模板和/或模板动态参考
- Ember.js:在模板中呈现谷歌图表(仅当存在时才称为目标DOM元素)
- Grunt.js模板:在任务中使用目标的名称
- 测量子模板中的目标元素并传递给全局函数