Grunt:抽象掉一些任务
Grunt: abstracting away some tasks
我有一个项目有很多繁琐的任务,基本上是在构建一个功能齐全的资产管道(转换、源地图、缩小、md5 文件名视觉)。大多数任务都是我在 github 上找到的开源任务,但也有一些是我刚刚在 "inlined" 和 grunt.registerTask
上找到的。
现在我想创建第二个也使用此任务的项目,但我找不到正确的方法来为使用其他任务的 Grunt 创建 npmTask,因为它看起来好像 Grunt 从未为此设计过.如何创建这样的东西?也许 github 上有一些项目做过这样的事情,我可以看看他们的设计?
您需要创建并加载您自己的 grunt 任务 - 这实际上非常简单。
创建任务 - 官方文档有一个调用其他两个任务的示例:http://gruntjs.com/creating-tasks#custom-tasks。将以下内容放入您的 Gruntfile
:
grunt.registerTask('hello', function() {
grunt.log.write('hello');
grunt.task.run(['task1', 'task2'])
});
然后将该任务移动到它自己的文件和文件夹中(如 tasks/hello.js
),并使用包装代码
'use strict';
module.exports = function(grunt) {
grunt.registerTask('hello', function() {
grunt.log.write('hello');
grunt.config.set('task1.opt1', 1234);
grunt.task.run(['task1', 'task2'])
});
};
然后加载 Gruntfile.js
中的任务文件夹
grunt.loadTasks('tasks');
我有一个项目有很多繁琐的任务,基本上是在构建一个功能齐全的资产管道(转换、源地图、缩小、md5 文件名视觉)。大多数任务都是我在 github 上找到的开源任务,但也有一些是我刚刚在 "inlined" 和 grunt.registerTask
上找到的。
现在我想创建第二个也使用此任务的项目,但我找不到正确的方法来为使用其他任务的 Grunt 创建 npmTask,因为它看起来好像 Grunt 从未为此设计过.如何创建这样的东西?也许 github 上有一些项目做过这样的事情,我可以看看他们的设计?
您需要创建并加载您自己的 grunt 任务 - 这实际上非常简单。
创建任务 - 官方文档有一个调用其他两个任务的示例:http://gruntjs.com/creating-tasks#custom-tasks。将以下内容放入您的
Gruntfile
:grunt.registerTask('hello', function() { grunt.log.write('hello'); grunt.task.run(['task1', 'task2']) });
然后将该任务移动到它自己的文件和文件夹中(如
tasks/hello.js
),并使用包装代码'use strict'; module.exports = function(grunt) { grunt.registerTask('hello', function() { grunt.log.write('hello'); grunt.config.set('task1.opt1', 1234); grunt.task.run(['task1', 'task2']) }); };
然后加载
中的任务文件夹Gruntfile.js
grunt.loadTasks('tasks');