Gruntjs 从另一个任务创建的Grunt Alter模板
我有一个任务在Grunt中,用于Gruntjs 从另一个任务创建的Grunt Alter模板,gruntjs,Gruntjs,我有一个任务在Grunt中,用于清理,另一个任务是复制。基本上,我在一个地方清理一些东西,然后换上新的东西,去同样的地方。我不知道如何映射我的copy.files.dest,以便它使用clean.env.files.src中的值,但会切换修饰符。因此: // Project settings yeoman: { // configurable paths app: 'app', dist: 'dist', prod:'L:/dist'
清理
,另一个任务是复制
。基本上,我在一个地方清理一些东西,然后换上新的东西,去同样的地方。我不知道如何映射我的copy.files.dest
,以便它使用clean.env.files.src
中的值,但会切换修饰符。因此:
// Project settings
yeoman: {
// configurable paths
app: 'app',
dist: 'dist',
prod:'L:/dist'
}
// the prod sub-block of the clean task configuration
prod:{
files:[{
dot:true,
src:[
'<%= yeoman.prod% >/scripts',
'<%= yeoman.prod% >/styles',
'<%= yeoman.prod% >/views',
'<%= yeoman.prod% >/*.html',
'<%= yeoman.prod% >/images'
]
}]
}
//the prod sub-block of the copy task configuration
prod:{
files:[{
expand:true,
dot:true,
cwd:'<%= yeoman.dist %>',
dest:'<%= yeoman.prod %>',
//can i use the result files from this path, but use yeoman.dist instead of yeoman.prod?
src:['<%= clean:prod:files:src %>']
}]
}
//项目设置
约曼:{
//可配置路径
应用程序:“应用程序”,
地区:'地区',
产品:'L:/dist'
}
//clean任务配置的prod子块
产品:{
档案:[{
多特:没错,
src:[
“/scripts”,
“/styles”,
“/views”,
“/*.html”,
“/图像”
]
}]
}
//复制任务配置的prod子块
产品:{
档案:[{
是的,
多特:没错,
cwd:“”,
目标:'',
//我可以使用此路径中的结果文件,但使用yeoman.dist而不是yeoman.prod吗?
src:['']
}]
}
我想使用
中的模板,但使用另一种配置(换句话说,该任务使用yeoman.prod
,而我希望列出所有相同的文件,要执行某些操作,需要从yeoman.dist
中进行src)
有没有办法通过grunt语法来实现这一点,或者我必须依赖我的(未显示)自定义函数吗?
编辑,删除对父任务的引用,因为它们并不反映我的代码的实际外观。请记住,Gruntfiles是javascript。它们必须用有效的javascript编写
clean.prod:{}
不是有效的javascript
Grunt模板中使用的点符号,
只是一种通过javascript对象进行翻译的模板格式,而不是javascript语言本身的一部分
因此,请将配置更改为:
clean: {
prod: {
src: [ /* file patterns here */ ]
}
}
然后使用:
访问clean:prod
任务的src
属性
我已经从文件
数组中取出了配置,就好像在目标prod
中只有一个src/dest
块一样,它是不需要的。但是如果您想从配置中的该位置访问值,您必须记住文件
是一个数组。因此,使用模板访问数组的第一项将是:
。但是,除非需要,否则不使用文件
数组要简单得多
有关javascript对象和grunt模板的更多信息,请参阅。删除了引用。我实际上没有使用
clean.prod:{}
。我的系统工作正常,只是想改进配置,使其更易于维护,现在我正在使用不同的方法来实现这一点。如果你有什么建议,请告诉我。我认为最好的对象之一的资源是John Resig,[如何成为JavaScript忍者]()。好书。在此之前,我可能已经阅读了其他4本关于OOJavaScript的手册,这是迄今为止最好的。遗憾的是,当我第一次选择js时,它不存在。你编辑的配置仍然无效。祝你好运!现在,我的客户通过一个更复杂的外部模板解决方案来实现这个问题。