Alexandro.Net

Version 1.0.2

@stackline/load-grunt-tasks

Load multiple grunt tasks using globbing patterns

Independent maintenance of load-grunt-tasks 5.1.0. Original authors and licenses are retained.

Installation

# Preserve existing imports with an npm alias
npm install load-grunt-tasks@npm:@stackline/load-grunt-tasks@1.0.2
# Or use the scoped package name in your imports
npm install @stackline/load-grunt-tasks@1.0.2

Node.js: >=8. Read the compatibility and maintenance notes before migrating.

Usage and API

@stackline/load-grunt-tasks

Load multiple grunt tasks using globbing patterns.

npm version license GitHub repository Docs Reddit community

Documentation | npm | Issues | Repository

Current package version: 1.0.2


Why this package?

@stackline/load-grunt-tasks is the Stackline-maintained distribution of load-grunt-tasks@5.1.0. It is an independent continuation of load-grunt-tasks; original authors and licenses remain credited below.

Compatibility

Item Value
Package @stackline/load-grunt-tasks@1.0.2
API target load-grunt-tasks@5.1.0
Supported Node.js >=8
License MIT
Runtime dependencies arrify, multimatch, pkg-up, resolve-pkg
Peer dependencies grunt >=1

Installation

npm install @stackline/load-grunt-tasks

Preserve existing imports and plugin resolution with an npm alias:

npm install load-grunt-tasks@npm:@stackline/load-grunt-tasks

Usage and API reference

load-grunt-tasks Build Status

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

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('@stackline/load-grunt-tasks')(grunt);

Install

$ npm install --save-dev @stackline/load-grunt-tasks

Usage

// Gruntfile.js
module.exports = grunt => {
    // Load all grunt tasks matching the ['grunt-*', '@*/grunt-*'] patterns
    require('@stackline/load-grunt-tasks')(grunt);

    grunt.initConfig({});
    grunt.registerTask('default', []);
};

Examples

Load all grunt tasks

require('@stackline/load-grunt-tasks')(grunt);

Equivalent to:

require('@stackline/load-grunt-tasks')(grunt, {pattern: ['grunt-*', '@*/grunt-*']});

Load all grunt-contrib tasks

require('@stackline/load-grunt-tasks')(grunt, {pattern: 'grunt-contrib-*'});

Load all grunt-contrib tasks and another non-contrib task

require('@stackline/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('@stackline/load-grunt-tasks')(grunt, {pattern: ['grunt-contrib-*', '!grunt-contrib-coffee']});

Set custom path to package.json

require('@stackline/load-grunt-tasks')(grunt, {config: '../package'});

Only load from devDependencies

require('@stackline/load-grunt-tasks')(grunt, {scope: 'devDependencies'});

Only load from devDependencies and dependencies

require('@stackline/load-grunt-tasks')(grunt, {scope: ['devDependencies', 'dependencies']});

All options in use

require('@stackline/load-grunt-tasks')(grunt, {
    pattern: 'grunt-contrib-*',
    config: '../package.json',
    scope: 'devDependencies',
    requireResolution: true
});

Options

pattern

Type: string | string[]
Default: ['grunt-*', '@*/grunt-*'] (Glob pattern)

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.

Credits and original authors

Original copyright, license notices and contributor acknowledgements remain part of this distribution. Stackline maintenance does not replace authorship of the original work.

License

MIT. See the license and notice files in the repository.

Community and Links

Use this repository's issue tracker for reproducible bugs and feature requests. Join r/Stackline for examples, usage questions and release discussions.

Upstream issues and maintenance review

Upstream review

Based on load-grunt-tasks@5.1.0, commit fddcf81829b1e88f3daf855ea2aa759224dec98a. All published upstream runtime files match this commit byte-for-byte; npm tarball integrity was independently checked.

The fork preserves runtime files, exports, CLI names and engine declarations. Original license and authorship notices remain. Development tooling runs on Node24 without raising the package runtime requirement.

Issue triage (2026-09-29)

The upstream open-issue snapshot returned no open issues. This is not a claim that every historical issue has been solved. Added real task discovery, scoped filtering, exclusion and package-resolution checks in addition to the upstream Grunt smoke test.

No upstream maintainers were contacted. These are scoped compatibility decisions, not blanket claims that upstream issues are fixed.

Verification

npm ci --ignore-scripts, npm test, npm run test:package, and npm audit --audit-level=low. CI and CodeQL gate the exact immutable package artifact. Packed consumer tests install the resulting archive before exercising its public behavior.

Release changes

Stackline changes

1.0.0

Release files and references

Package bytes, npm provenance and the immutable GitHub release were verified for this version. Security checks describe the reviewed release; documented compatibility risks and upstream reports are not blanket claims of resolution.