From b93ecb88dda78f639d8385b41321e7e8ca7234d3 Mon Sep 17 00:00:00 2001 From: Jonathan Desrosiers Date: Mon, 10 Feb 2025 14:28:46 +0000 Subject: [PATCH] Build/Test Tools: Remove `matchdep` as a dependency. `matchdep` was introduced in [25243] to more easily manage `grunt-*` dependencies. The package has effectively been abandoned upstream, and the functionality can be replaced with a simple loop. Props desrosj, spacedmonkey, swissspidy. See #62221. git-svn-id: https://develop.svn.wordpress.org/trunk@59797 602fd350-edb4-49c9-b593-d223f7449a82 --- Gruntfile.js | 40 +++++++++++++-- package-lock.json | 123 ---------------------------------------------- package.json | 1 - 3 files changed, 37 insertions(+), 127 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 7d9a6e7d4c073..09ce2317e2b51 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -83,12 +83,46 @@ module.exports = function(grunt) { // First do `npm install` if package.json has changed. installChanged.watchPackage(); - // Load tasks. - require('matchdep').filterDev(['grunt-*', '!grunt-legacy-util']).forEach( grunt.loadNpmTasks ); - // Load legacy utils. grunt.util = require('grunt-legacy-util'); + var gruntDependencies = { + 'contrib': [ + 'clean', + 'concat', + 'copy', + 'cssmin', + 'jshint', + 'qunit', + 'uglify', + 'watch' + ], + 'standard': [ + 'banner', + 'file-append', + 'jsdoc', + 'patch-wordpress', + 'replace-lts', + 'rtlcss', + 'sass', + 'webpack' + ] + }; + + // Load grunt-* tasks. + function loadGruntTasks( dependency ) { + var contrib = key === 'contrib' ? 'contrib-' : ''; + grunt.loadNpmTasks( 'grunt-' + contrib + dependency ); + } + + for ( var key in gruntDependencies ) { + if ( ! gruntDependencies.hasOwnProperty( key ) ) { + continue; + } + + gruntDependencies[key].forEach( loadGruntTasks ); + } + // Load PostCSS tasks. grunt.loadNpmTasks('@lodder/grunt-postcss'); diff --git a/package-lock.json b/package-lock.json index d60ff5497138a..58e91930e895f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -140,7 +140,6 @@ "grunt-webpack": "7.0.0", "ink-docstrap": "1.3.2", "install-changed": "1.1.0", - "matchdep": "~2.0.0", "postcss": "8.4.49", "prettier": "npm:wp-prettier@2.6.2", "qunit": "~2.23.1", @@ -25440,119 +25439,6 @@ "outlayer": "^2.1.0" } }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA==", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/expand-tilde": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", - "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/resolve-dir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", - "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -32345,15 +32231,6 @@ "dev": true, "optional": true }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", diff --git a/package.json b/package.json index 3dfc9bd5e92e9..34017db0395b1 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,6 @@ "grunt-webpack": "7.0.0", "ink-docstrap": "1.3.2", "install-changed": "1.1.0", - "matchdep": "~2.0.0", "postcss": "8.4.49", "prettier": "npm:wp-prettier@2.6.2", "qunit": "~2.23.1",