目前还无法定制Yeoman构建过程。但是你可以使用这个解决办法。将以下代码复制到你自己的Gruntfile中:
var targets = {
default : ' rjs concat css min img rev usemin manifest',
usemin : 'usemin-handler rjs concat css img rev usemin manifest',
text : 'usemin-handler rjs concat css min rev usemin manifest',
buildkit : 'usemin-handler rjs concat css min img rev usemin manifest html:buildkit',
basics : 'usemin-handler rjs concat css min img rev usemin manifest html:basics',
minify : 'usemin-handler rjs concat css min img rev usemin manifest html:compress',
test : 'usemin-handler rjs concat css img rev usemin manifest',
yourbuild : 'intro clean mkdirs rjs'
};
var targetList = grunt.log.wordlist(Object.keys(targets));
grunt.registerTask('build', 'Run a predefined target - build:<target> \n' + targetList, function(target) {
var valid = Object.keys(targets);
target = target || 'usemin';
if ( valid.indexOf( target ) === -1 ) {
grunt.log
.error('Not a valid target')
.error(grunt.helper('invalid targets', targets));
return false;
}
var tasks = ['intro', 'clean coffee compass mkdirs', targets[target], 'copy time'].join(' ');
if( target === 'yourbuild') {
tasks = targets[target];
}
if( target === 'test' ) {
tasks = grunt.helper( 'build:skip', tasks, 'compass' );
tasks = grunt.helper( 'build:skip', tasks, 'phantomjs', 'manifest' );
}
grunt.log.subhead('Running ' + target + ' target')
.writeln(' - ' + grunt.log.wordlist(tasks.split(' '), { separator: ' ' }));
grunt.task.run(tasks);
});
现在,您可以更改以下行以定制自己的构建过程:
yourbuild : 'intro clean mkdirs rjs'
但请记住,这段代码是从yeoman源代码中复制而来的,如果有更新,您必须自己进行相应的更新。