TryGhost
OSS
Ghost
Fixed knip and removed unused dependencies it surfaced no ref - knip.json: disabled vitest config auto-discovery at the root workspace. Knip's vitest plugin was naively dynamically importing every file matched by the root vitest.config.mjs's `test.projects` glob (packages/**, apps/*, used by the real vitest CLI for its unified watcher) as if each were itself a vitest config — including README.md files and packages/i18n/generate-context.js, whose un-awaited async IIFE threw an unhandled rejection that crashed the whole `knip` process before any report was produced. Each package already has its own correctly-scoped vitest.config.ts that knip reads directly, so the root config's broad glob was never needed for knip's analysis. - Removed 6 dependencies knip flagged as unused after verifying via full-repo grep that they have zero references anywhere: @tryghost/string and mingo (admin-x-settings, plus a stale @tryghost/string type declaration), @tryghost/kg-clean-basic-html and @tryghost/kg-markdown-html-renderer (ghost/core), lodash (kg-converters), @lexical/code (kg-lexical-html-renderer). - Pinned 6 more in ignoreDependencies since they're used through means knip's static analysis can't trace: bookshelf-relations is resolved by string name inside bookshelf's plugin API, kg-unsplash-selector is only referenced via a Tailwind @source CSS directive, and @tryghost/debug/@vitejs/plugin-react/vite-plugin-svgr are dynamically imported inside the shared apps/_shared/vite-public-app.mjs, whose vite.config knip previously couldn't even load.
nx run ghost-monorepo:lint:boundaries
Sign in / Sign up
Open main menu
Succeeded
CI Pipeline Execution
1 run failed
nx run ghost-monorepo:lint:boundaries
Click to copy
Linux
4 CPU cores
read-write
access token used
1c33ffcc
29496