chore(deps): clean up dependencies

* Remove unused dependencies
* Add missing dependencies
* Add `dependency-cleanup` script to check dependencies with [Knip](https://knip.dev/)
This commit is contained in:
Jeff Williams 2025-09-30 20:48:29 -07:00
parent c076b5d8f1
commit 2a2d950b56
No known key found for this signature in database
12 changed files with 649 additions and 213 deletions

View File

@ -13,6 +13,7 @@ CODE_OF_CONDUCT.md
CONTRIBUTING.md CONTRIBUTING.md
Herebyfile* Herebyfile*
js-green-licenses.json js-green-licenses.json
knip.json
lerna.json lerna.json
packages/ packages/
test/ test/

View File

@ -43,6 +43,16 @@ export const coverage = task({
}, },
}); });
export const dependencyCleanup = task({
name: 'dependency-cleanup',
run: async () => {
await execa(bin('knip'), [], {
stdout: 'inherit',
stderr: 'inherit',
});
},
});
export const dependencyEngines = task({ export const dependencyEngines = task({
name: 'dependency-engines', name: 'dependency-engines',
run: async () => { run: async () => {
@ -91,7 +101,7 @@ export const dependencyLicenses = task({
export const dependencies = task({ export const dependencies = task({
name: 'dependencies', name: 'dependencies',
dependencies: [dependencyEngines, dependencyLicenses], dependencies: [dependencyCleanup, dependencyEngines, dependencyLicenses],
}); });
export const format = task({ export const format = task({

61
knip.json Normal file
View File

@ -0,0 +1,61 @@
{
"workspaces": {
".": {
"entry": ["Herebyfile.js"],
"ignoreDependencies": ["ajv", "c8", "installed-check", "license-check-and-add", "mock-fs"]
},
"packages/jsdoc": {
"project": ["*.js", "test/index.js"]
},
"packages/jsdoc-ast": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-cli": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-core": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-doclet": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-eslint-config": {
"project": ["*.js"]
},
"packages/jsdoc-name": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-parse": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-plugins": {
"ignore": ["*.js", "test/**/*.js"]
},
"packages/jsdoc-prettier-config": {
"project": ["*.js"]
},
"packages/jsdoc-salty": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-tag": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-task-runner": {
"project": ["lib/**/*.js"]
},
"packages/jsdoc-template-legacy": {
"project": ["*.js", "lib/**/*.js"],
"ignoreDependencies": [
"@fontsource-variable/open-sans",
"code-prettify",
"color-themes-for-google-code-prettify"
]
},
"packages/jsdoc-test-matchers": {
"project": ["*.js"]
},
"packages/jsdoc-util": {
"project": ["lib/**/*.js"]
}
}
}

740
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,19 +3,10 @@
"private": true, "private": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"devDependencies": { "devDependencies": {
"@babel/eslint-parser": "7.28.4", "@jsdoc/core": "^0.5.10",
"@jsdoc/ast": "^0.2.5", "@jsdoc/eslint-config": "^2.0.2",
"@jsdoc/cli": "^0.3.5", "@jsdoc/tag": "^0.2.13",
"@jsdoc/core": "^0.5.4", "@jsdoc/util": "^0.3.4",
"@jsdoc/doclet": "^0.2.5",
"@jsdoc/eslint-config": "^2.0.0",
"@jsdoc/parse": "^0.3.5",
"@jsdoc/prettier-config": "^0.2.3",
"@jsdoc/salty": "^0.2.5",
"@jsdoc/tag": "^0.2.5",
"@jsdoc/task-runner": "^0.2.2",
"@jsdoc/test-matchers": "^0.2.4",
"@jsdoc/util": "^0.3.0",
"ajv": "^8.17.1", "ajv": "^8.17.1",
"c8": "^10.1.3", "c8": "^10.1.3",
"eslint": "^9.36.0", "eslint": "^9.36.0",
@ -26,7 +17,7 @@
"jasmine": "^5.11.0", "jasmine": "^5.11.0",
"jasmine-console-reporter": "^3.1.0", "jasmine-console-reporter": "^3.1.0",
"js-green-licenses": "^4.0.0", "js-green-licenses": "^4.0.0",
"klaw-sync": "^7.0.0", "knip": "^5.64.1",
"license-check-and-add": "^4.0.5", "license-check-and-add": "^4.0.5",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"mock-fs": "^5.5.0", "mock-fs": "^5.5.0",
@ -40,6 +31,7 @@
"coverage": "node_modules/.bin/hereby coverage", "coverage": "node_modules/.bin/hereby coverage",
"default": "node_modules/.bin/hereby", "default": "node_modules/.bin/hereby",
"dependencies": "node_modules/.bin/hereby dependencies", "dependencies": "node_modules/.bin/hereby dependencies",
"dependency-cleanup": "node_modules/.bin/hereby dependency-cleanup",
"dependency-engines": "node_modules/.bin/hereby dependency-engines", "dependency-engines": "node_modules/.bin/hereby dependency-engines",
"dependency-licenses": "node_modules/.bin/hereby dependency-licenses", "dependency-licenses": "node_modules/.bin/hereby dependency-licenses",
"format": "node_modules/.bin/hereby format", "format": "node_modules/.bin/hereby format",

View File

@ -35,7 +35,6 @@
"@jsdoc/util": "^0.3.4", "@jsdoc/util": "^0.3.4",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"ow": "^3.0.0", "ow": "^3.0.0",
"strip-bom": "^5.0.0",
"yargs-parser": "^22.0.0" "yargs-parser": "^22.0.0"
}, },
"engines": { "engines": {

View File

@ -34,7 +34,7 @@
"@jsdoc/ast": "^0.2.13", "@jsdoc/ast": "^0.2.13",
"@jsdoc/name": "^0.1.1", "@jsdoc/name": "^0.1.1",
"@jsdoc/tag": "^0.2.13", "@jsdoc/tag": "^0.2.13",
"@jsdoc/util": "^0.3.4", "common-path-prefix": "^3.0.0",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"on-change": "^6.0.0", "on-change": "^6.0.0",
"strip-bom": "^5.0.0" "strip-bom": "^5.0.0"

View File

@ -16,7 +16,6 @@
"@jsdoc/ast": "^0.2.13", "@jsdoc/ast": "^0.2.13",
"@jsdoc/doclet": "^0.2.13", "@jsdoc/doclet": "^0.2.13",
"@jsdoc/name": "^0.1.1", "@jsdoc/name": "^0.1.1",
"@jsdoc/util": "^0.3.4",
"escape-string-regexp": "^5.0.0" "escape-string-regexp": "^5.0.0"
}, },
"engines": { "engines": {

View File

@ -29,12 +29,5 @@
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.12.0 || >=23.0.0" "node": "^20.19.0 || ^22.12.0 || >=23.0.0"
},
"devDependencies": {
"@jsdoc/core": "^0.5.10",
"@jsdoc/parse": "^0.3.13"
},
"dependencies": {
"@jsdoc/util": "^0.3.4"
} }
} }

View File

@ -8,7 +8,7 @@
"author": "Jeff Williams <jeffrey.l.williams@gmail.com>", "author": "Jeff Williams <jeffrey.l.williams@gmail.com>",
"homepage": "https://github.com/jsdoc/jsdoc", "homepage": "https://github.com/jsdoc/jsdoc",
"license": "Apache-2.0", "license": "Apache-2.0",
"main": "index.js", "main": "publish.js",
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
}, },
@ -17,7 +17,6 @@
"@jsdoc/name": "^0.1.1", "@jsdoc/name": "^0.1.1",
"@jsdoc/salty": "^0.2.9", "@jsdoc/salty": "^0.2.9",
"@jsdoc/tag": "^0.2.13", "@jsdoc/tag": "^0.2.13",
"@jsdoc/util": "^0.3.4",
"catharsis": "^0.11.0", "catharsis": "^0.11.0",
"code-prettify": "^0.1.0", "code-prettify": "^0.1.0",
"color-themes-for-google-code-prettify": "^2.0.4", "color-themes-for-google-code-prettify": "^2.0.4",

View File

@ -30,10 +30,6 @@
"import": "./lib/*" "import": "./lib/*"
} }
}, },
"dependencies": {
"lodash": "^4.17.21",
"ow": "^3.0.0"
},
"engines": { "engines": {
"node": "^20.19.0 || ^22.12.0 || >=23.0.0" "node": "^20.19.0 || ^22.12.0 || >=23.0.0"
}, },

View File

@ -15,15 +15,7 @@
}, },
"dependencies": { "dependencies": {
"@jsdoc/cli": "^0.3.12", "@jsdoc/cli": "^0.3.12",
"@jsdoc/core": "^0.5.10", "strip-bom": "^5.0.0"
"@jsdoc/doclet": "^0.2.13",
"@jsdoc/parse": "^0.3.13",
"@jsdoc/tag": "^0.2.13",
"@jsdoc/template-legacy": "^0.1.13",
"@jsdoc/util": "^0.3.4",
"lodash": "^4.17.21",
"strip-bom": "^5.0.0",
"strip-json-comments": "^5.0.3"
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.12.0 || >=23.0.0" "node": "^20.19.0 || ^22.12.0 || >=23.0.0"