From 2016c97a12df990eacec2121544a61d84629043b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 26 Mar 2026 11:27:46 +0200 Subject: [PATCH] chore(scripts): add a way to wipe node modules --- package.json | 1 + scripts/wipe-node-modules.mts | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 scripts/wipe-node-modules.mts diff --git a/package.json b/package.json index aefd41f12b..c20996da39 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "chore:generate-openapi": "tsx ./scripts/generate-openapi.ts", "chore:update-build-info": "tsx ./scripts/update-build-info.ts", "chore:update-version": "tsx ./scripts/update-version.ts", + "chore:wipe-node-modules": "node --experimental-strip-types ./scripts/wipe-node-modules.mts", "docs:build": "pnpm run --filter build-docs start", "docs:preview": "pnpm http-server site -p 9000", "edit-docs:edit-demo": "pnpm run --filter edit-docs edit-demo", diff --git a/scripts/wipe-node-modules.mts b/scripts/wipe-node-modules.mts new file mode 100644 index 0000000000..a8f8231edf --- /dev/null +++ b/scripts/wipe-node-modules.mts @@ -0,0 +1,24 @@ +import { rm } from "fs/promises"; +import { glob } from "glob"; +import path from "path"; + +const root = path.resolve(import.meta.dirname, ".."); + +const dirs = await glob([ + "node_modules", + "apps/*/node_modules", + "packages/*/node_modules" +], { + cwd: root, + absolute: true +}); + +if (dirs.length === 0) { + console.log("No node_modules directories found."); +} else { + for (const dir of dirs) { + console.log(`Removing ${path.relative(root, dir)}`); + await rm(dir, { recursive: true, force: true }); + } + console.log(`Done. Removed ${dirs.length} node_modules director${dirs.length === 1 ? "y" : "ies"}.`); +}