Grunt 自定义任务
发布时间:2023-05-11 14:05:12 所属栏目:教程 来源:
导读:你可以和任务一起疯狂。如果你的任务并没有遵循 "多任务" 结构,那就使用自定义任务。
grunt.registerTask('default', 'My "default" task description.', function() {
grunt.log.writeln(&#
grunt.registerTask('default', 'My "default" task description.', function() {
grunt.log.writeln(&#
|
你可以和任务一起疯狂。如果你的任务并没有遵循 "多任务" 结构,那就使用自定义任务。 grunt.registerTask('default', 'My "default" task description.', function() { grunt.log.writeln('Currently running the "default" task.'); }); 在一个任务内部,你可以执行其他的任务。 grunt.registerTask('foo', 'My "foo" task.', function() { // Enqueue "bar" and "baz" tasks, to run after "foo" finishes, in-order. grunt.task.run('bar', 'baz'); // Or: grunt.task.run(['bar', 'baz']); }); 任务也可以是异步的。 grunt.registerTask('asyncfoo', 'My "asyncfoo" task.', function() { // Force task into async mode and grab a handle to the "done" function. var done = this.async(); // Run some sync stuff. grunt.log.writeln('Processing task...'); // And some async stuff. setTimeout(function() { grunt.log.writeln('All done!'); done(); }, 1000); }); 任务也可以访问它们自身名称和参数。 grunt.registerTask('foo', 'My "foo" task.', function(a, b) { grunt.log.writeln(this.name, a, b); }); // 用法: // grunt foo foo:bar // logs: "foo", undefined, undefined // logs: "foo", "bar", undefined // grunt foo:bar:baz // logs: "foo", "bar", "baz" 如果记录到任何错误,那么任务就会失败。 grunt.registerTask('foo', 'My "foo" task.', function() { if (failureOfSomeKind) { grunt.log.error('This is an error message.'); } // 如果这个任务出现错误则返回false if (ifErrors) { return false; } grunt.log.writeln('This is the success message'); }); 当任务失败时,所有后续任务都将终止,除非指定 --force 。 grunt.registerTask('foo', 'My "foo" task.', function() { // Fail synchronously. return false; }); grunt.registerTask('bar', 'My "bar" task.', function() { var done = this.async(); setTimeout(function() { // Fail asynchronously. done(false); }, 1000); }); 任务还可以依赖于其他任务的成功执行。注意 grunt.task.requires 并不会真正的运行其他任务,它仅仅检查其它任务是否已经执行,并且没有失败。 grunt.registerTask('foo', 'My "foo" task.', function() { return false; }); grunt.registerTask('bar', 'My "bar" task.', function() { // 如果"foo"任务运行失败或者没有运行则任务失败。 grunt.task.requires('foo'); // 如果"foo"任务运行成功则执行这里的代码。 grunt.log.writeln('Hello, world.'); }); // 用法: // grunt foo bar // 没有输出,因为"foo"失败。 // grunt bar // 没有输出,因为"foo"从未运行。 如果任务需要的配置属性不存在,其也可能失败。 grunt.registerTask('foo', 'My "foo" task.', function() { // Fail task if "Meta.name" config prop is missing // Format 1: String grunt.config.requires('Meta.name'); // or Format 2: Array grunt.config.requires(['Meta', 'name']); // Log... conditionally. grunt.log.writeln('This will only log if Meta.name is defined in the config.'); }); 任务还可以访问配置属性。 grunt.registerTask('foo', 'My "foo" task.', function() { // 记录属性值,如果属性未定义(undefined)则返回null。 grunt.log.writeln('The Meta.name property is: ' + grunt.config('Meta.name')); // 同样的记录属性值,如果属性未定义(undefined)则返回null。 grunt.log.writeln('The Meta.name property is: ' + grunt.config(['Meta', 'name'])); }); (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
