Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sindresorhus/load-grunt-tasks
Load multiple grunt tasks using globbing patterns
https://github.com/sindresorhus/load-grunt-tasks
Last synced: 2 days ago
JSON representation
Load multiple grunt tasks using globbing patterns
- Host: GitHub
- URL: https://github.com/sindresorhus/load-grunt-tasks
- Owner: sindresorhus
- License: mit
- Created: 2013-08-15T20:32:55.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2022-07-08T12:28:03.000Z (over 2 years ago)
- Last Synced: 2024-10-29T15:46:28.451Z (about 2 months ago)
- Language: JavaScript
- Homepage:
- Size: 42 KB
- Stars: 934
- Watchers: 17
- Forks: 60
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- Funding: .github/funding.yml
- License: license
- Security: .github/security.md
Awesome Lists containing this project
README
# load-grunt-tasks
> 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`/`optionalDependencies` in your package.json and load grunt tasks that match the provided patterns.
#### Before
```js
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
```js
require('load-grunt-tasks')(grunt);
```## Install
```
$ npm install --save-dev load-grunt-tasks
```## Usage
```js
// Gruntfile.js
module.exports = grunt => {
// Load all grunt tasks matching the ['grunt-*', '@*/grunt-*'] patterns
require('load-grunt-tasks')(grunt);grunt.initConfig({});
grunt.registerTask('default', []);
};
```## Examples
### Load all grunt tasks
```js
require('load-grunt-tasks')(grunt);
```Equivalent to:
```js
require('load-grunt-tasks')(grunt, {pattern: ['grunt-*', '@*/grunt-*']});
```### Load all grunt-contrib tasks
```js
require('load-grunt-tasks')(grunt, {pattern: 'grunt-contrib-*'});
```### Load all grunt-contrib tasks and another non-contrib task
```js
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:
```js
require('load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', '!grunt-contrib-coffee']});
```### Set custom path to package.json
```js
require('load-grunt-tasks')(grunt, {config: '../package'});
```### Only load from `devDependencies`
```js
require('load-grunt-tasks')(grunt, {scope: 'devDependencies'});
```### Only load from `devDependencies` and `dependencies`
```js
require('load-grunt-tasks')(grunt, {scope: ['devDependencies', 'dependencies']});
```### All options in use
```js
require('load-grunt-tasks')(grunt, {
pattern: 'grunt-contrib-*',
config: '../package.json',
scope: 'devDependencies',
requireResolution: true
});
```## Options
### pattern
Type: `string | string[]`
Default: `['grunt-*', '@*/grunt-*']` ([Glob pattern](https://github.com/isaacs/minimatch))### config
Type: `string | object`
Default: Path to nearest package.json### scope
Type: `string | string[]`
Default: `['dependencies', 'devDependencies', 'peerDependencies', 'optionalDependencies']`
Values: `'dependencies'`, `'devDependencies'`, `'peerDependencies'`, `'optionalDependencies'`, `'bundledDependencies'`### requireResolution
Type: `boolean`
Default: `false`Traverse up the file hierarchy looking for dependencies like `require()`, rather than the default grunt-like behavior of loading tasks only in the immediate `node_modules` directory.