What is load-grunt-tasks?
The load-grunt-tasks npm package is designed to simplify the process of loading multiple grunt tasks into a Gruntfile. It automatically loads all grunt tasks specified in the package.json file, reducing the need for repetitive code and making the Gruntfile cleaner and easier to maintain.
What are load-grunt-tasks's main functionalities?
Automatic Task Loading
This feature allows you to automatically load all grunt tasks specified in your package.json file. By requiring 'load-grunt-tasks' and passing the grunt instance to it, you eliminate the need to manually load each task.
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({
// Your configuration here
});
};
Custom Task Pattern
This feature allows you to specify custom patterns for loading tasks. By providing a pattern array, you can control which tasks are loaded, including scoped packages.
module.exports = function(grunt) {
require('load-grunt-tasks')(grunt, { pattern: ['grunt-*', '@*/grunt-*'] });
grunt.initConfig({
// Your configuration here
});
};
Custom Configurations
This feature allows you to customize the configuration file and scope from which tasks are loaded. You can specify a different configuration file and limit the scope to dependencies, devDependencies, or peerDependencies.
module.exports = function(grunt) {
require('load-grunt-ttasks')(grunt, { config: 'package.json', scope: 'devDependencies' });
grunt.initConfig({
// Your configuration here
});
};
Other packages similar to load-grunt-tasks
jit-grunt
jit-grunt is a package that loads grunt tasks just-in-time, meaning it only loads the tasks that are needed for the current grunt task being run. This can improve performance by reducing the initial load time compared to load-grunt-tasks, which loads all tasks upfront.
time-grunt
time-grunt is a package that helps you measure the time taken by each grunt task. While it doesn't load tasks like load-grunt-tasks, it complements it by providing insights into task performance, helping you optimize your build process.
load-grunt-tasks ![Build Status](https://travis-ci.org/sindresorhus/load-grunt-tasks.svg?branch=master)
Load multiple grunt tasks using globbing patterns
Usually you would have to load each task one by one, which is unnecessarily cumbersome.
This module will read the dependencies
/devDependencies
/peerDependencies
in your package.json and load grunt tasks that match the provided patterns.
Before
grunt.loadNpmTasks('grunt-shell');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-recess');
grunt.loadNpmTasks('grunt-sizediff');
grunt.loadNpmTasks('grunt-svgmin');
grunt.loadNpmTasks('grunt-styl');
grunt.loadNpmTasks('grunt-php');
grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-bower-requirejs');
After
require('load-grunt-tasks')(grunt);
Install
$ npm install --save-dev load-grunt-tasks
Example config
module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
grunt.initConfig({});
grunt.registerTask('default', []);
}
Usage examples
Load all grunt tasks
require('load-grunt-tasks')(grunt);
Equivalent to:
require('load-grunt-tasks')(grunt, {pattern: 'grunt-*'});
Load all grunt-contrib tasks
require('load-grunt-tasks')(grunt, {pattern: 'grunt-contrib-*'});
Load all grunt-contrib tasks and another non-contrib task
require('load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', 'grunt-shell']});
Load all grunt-contrib tasks excluding one
You can exclude tasks using the negate !
globbing pattern:
require('load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', '!grunt-contrib-coffee']});
Set custom path to package.json
require('load-grunt-tasks')(grunt, {config: '../package'});
Only load from devDependencies
require('load-grunt-tasks')(grunt, {scope: 'devDependencies'});
Only load from devDependencies
and dependencies
require('load-grunt-tasks')(grunt, {scope: ['devDependencies', 'dependencies']});
All options in use
require('load-grunt-tasks')(grunt, {
pattern: 'grunt-contrib-*',
config: '../package.json',
scope: 'devDependencies'
});
Options
pattern
Type: String
, Array
Default: 'grunt-*'
(globbing pattern)
config
Type: String
, Object
Default: Path to nearest package.json
scope
Type: String
, Array
Default: ['dependencies', 'devDependencies', 'peerDependencies']
License
MIT © Sindre Sorhus