grunt 任务中的参数绑定
Parameters binding in grunt tasks
我对 grunt 任务有疑问:
watch: {
jshint: {
files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
tasks: ['jshint', 'concat', 'uglify'],
options: {
livereload: true
}
}
},
我在函数中调用它
grunt.registerTask('server', 'A task that runs server', function(version) {
if (arguments.length === 0) {
grunt.log.writeln("Please specify Version in arguments (grunt "+this.name+":version)");
} else {
grunt.log.writeln(this.name + ", " + version );
grunt.config.set('version', version);
grunt.task.run(['jshint', 'concat', 'uglify', 'open', 'connect', 'watch']);
}
});
问题是watch任务可以看到版本
但 watch 中的任务不绑定版本 - 这里
tasks: ['jshint', 'concat', 'uglify'],
结果:
0.1\src\myjs.js" changed.
\src\new.js cannot write file
解决方案是调用
watch: {
jshint: {
files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
tasks: ['jshint:<%= version %>', 'concat', 'uglify'],
options: {
livereload: true
}
}
},
和'jshint:<%= version %>'
不知道为什么会这样,但它有效
我对 grunt 任务有疑问:
watch: {
jshint: {
files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
tasks: ['jshint', 'concat', 'uglify'],
options: {
livereload: true
}
}
},
我在函数中调用它
grunt.registerTask('server', 'A task that runs server', function(version) {
if (arguments.length === 0) {
grunt.log.writeln("Please specify Version in arguments (grunt "+this.name+":version)");
} else {
grunt.log.writeln(this.name + ", " + version );
grunt.config.set('version', version);
grunt.task.run(['jshint', 'concat', 'uglify', 'open', 'connect', 'watch']);
}
});
问题是watch任务可以看到版本 但 watch 中的任务不绑定版本 - 这里
tasks: ['jshint', 'concat', 'uglify'],
结果:
0.1\src\myjs.js" changed.
\src\new.js cannot write file
解决方案是调用
watch: {
jshint: {
files: ['Gruntfile.js', '<%= version %>/src/**/*.js', '<%= version %>/src/*.js'],
tasks: ['jshint:<%= version %>', 'concat', 'uglify'],
options: {
livereload: true
}
}
},
和'jshint:<%= version %>'
不知道为什么会这样,但它有效