UNPKG

gulp-tasks-manager

Version:
127 lines (100 loc) 2.89 kB
# gulp-tasks-manager Gulp tasks manager. If you have too many tasks, you can split tasks into multiple pieces with this tool. ### Install ```sh npm install gulp-tasks-manager --save-dev ``` ### Demo For example, here is the file structure of an app: ```javascript /--app |--build |--tasks |--script.js |--style.js |--gulpfile.js |--js |--css |--node_modules |--package.json ``` in `gulpfile.js`: ```javascript var gulp = require('gulp'), plugins = require('gulp-load-plugins')(), tasks = require('gulp-tasks-manager'), task = tasks(gulp, plugins, { rootDir: '../', taskDir: './tasks' }); task('script'); task('style'); gulp.task('default', tasks.list()); ``` in `tasks/script.js`: ```javascript module.exports = function(gulp, plugins, ns) { var cxt = ns.context('./js'), path = { src: cxt('./**/*.js'), dst: cxt('./build') }; gulp.task(ns('build'), function() { gulp.src(path.src) .pipe(plugins.uglify()) .pipe(gulp.dest(path.dst)); }); gulp.task(ns('watch'), function() { gulp.watch(path.js, ns(['build'])); }); }; ``` in `tasks/style.js`: ```javascript module.exports = function(gulp, plugins, ns) { var cxt = ns.context('./css'), path = { src: cxt('./**/*.less'), dst: cxt('./build') }; gulp.task(ns('build'), function() { gulp.src(path.src) .pipe(plugins.less()) .pipe(gulp.dest(path.dst)); }); gulp.task(ns('watch'), function() { gulp.watch(path.less, ns(['build'])); }); }; ``` then just run `gulp`. If you want: - just build and watch script, run `gulp script` - just build but not watch style, run `gulp style:build` when executing `task(script)`, it is just: - `gulp.task('script:build', function(){})` - `gulp.task('script:watch', function(){})` - `gulp.task('script', ['script:build', 'script:watch'])` ### API - **tasks(gulp, plugins [, opts])** - `gulp`: the gulp as we all know - `plugins`: [`gulp-load-plugins`](https://github.com/jackfranklin/gulp-load-plugins)(preferred) or a self-defined object - `opts`: options - `rootDir`: default to `./` - `taskDir`: default to `./` - **tasks.list()** - list main tasks - return value is the format of `[namespace1, namespace2, ...]` - **tasks.listAll()** - list all tasks(main tasks and subtasks) - return value is the format of `{namespace1: [subtask1, subtask2], namespace2: [...], ...}` - **task(name [, filename])** - `name`: namespace - `filename`: if missed, default to `name` - **ns** - `ns.name`: the namespace - `ns.context(dir)`: locate the context dir of a namespace, return a function which is used to locate resources in the module represented by this namespace - `ns(taskName)`: return string of `namespace:taskName` and add it to the task list - `ns([taskName1, taskName2, ...])`: return an array of string with each item is the format of `namespace:taskNamex` ### License MIT