remnem 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -18
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -28,25 +28,24 @@ monorepo). remnem sidesteps that on the critical path:
|
|
|
28
28
|
never descends *into* a `node_modules` (the whole subtree is going anyway).
|
|
29
29
|
So the walk is proportional to your *source* tree, not the installed
|
|
30
30
|
dependency tree.
|
|
31
|
-
2. **Rename
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
2. **Rename out of the repo** — each `node_modules` is `rename`d out of the
|
|
32
|
+
repository entirely, into a per-run staging directory under the OS temp dir
|
|
33
|
+
(`$TMPDIR/remnem-<pid>/`). On one filesystem that is an O(1) metadata
|
|
34
|
+
operation no matter how large the tree is. The instant it returns,
|
|
35
|
+
`node_modules` is gone from its location — **a clean reinstall can start
|
|
36
|
+
immediately** — and because the staged copy lives outside the repo, it can
|
|
37
|
+
never be picked up by `git status` / `git add`.
|
|
35
38
|
3. **Reclaim in the background** — a detached background process `rm -rf`s the
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
staging directory, so the disk-freeing I/O never blocks you. Space comes back
|
|
40
|
+
within a few seconds, hands-free.
|
|
38
41
|
|
|
39
42
|
Pass **`--sync`** if you'd rather block until the space is actually reclaimed
|
|
40
|
-
(e.g. a script that measures free disk right after)
|
|
43
|
+
(e.g. a script that measures free disk right after) — that mode deletes in place
|
|
44
|
+
instead of staging.
|
|
41
45
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
above). Pass **`-t` / `--trash`** to move each `node_modules` to the OS trash
|
|
46
|
-
instead (Finder Trash on macOS, the freedesktop trash on Linux, the Recycle Bin
|
|
47
|
-
on Windows) — recoverable from the trash, with the space reclaimed when you empty
|
|
48
|
-
it. A `node_modules` on a *different* volume (rare) can't be renamed instantly, so
|
|
49
|
-
those fall back to a direct delete.
|
|
46
|
+
If the OS temp dir happens to be on a *different* filesystem than the repo (so a
|
|
47
|
+
`rename` would need a slow cross-device copy), remnem detects it and falls back
|
|
48
|
+
to a synchronous in-place delete — still never leaving anything in the tree.
|
|
50
49
|
|
|
51
50
|
## Install
|
|
52
51
|
|
|
@@ -88,7 +87,6 @@ Arguments:
|
|
|
88
87
|
path Project root to clean (default: current directory)
|
|
89
88
|
|
|
90
89
|
Options:
|
|
91
|
-
-t, --trash Move to the Trash instead of deleting (recoverable)
|
|
92
90
|
-l, --list List what would be cleared; touch nothing
|
|
93
91
|
-m, --measure Size each node_modules (slow: walks every dependency tree)
|
|
94
92
|
-w, --workspace Also resolve & report the bun/pnpm workspace layout (slow)
|
|
@@ -100,8 +98,8 @@ Options:
|
|
|
100
98
|
|
|
101
99
|
By default `remnem` deletes each `node_modules` after printing what it found and
|
|
102
100
|
asking for confirmation (skipped with `-y`, or when stdin isn't a TTY, e.g. in
|
|
103
|
-
CI). Use `-l` to list without touching anything,
|
|
104
|
-
|
|
101
|
+
CI). Use `-l` to list without touching anything, or `--sync` to wait for the
|
|
102
|
+
space to be reclaimed before returning.
|
|
105
103
|
|
|
106
104
|
Sizing (`-m`) and workspace-layout resolution (`-w`) each require an extra tree
|
|
107
105
|
walk, so they are **off by default** — the fast path does neither.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "remnem",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.10",
|
|
4
4
|
"description": "Find and delete every nested node_modules in a project as fast as possible (Rust binary)",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"node": ">= 18"
|
|
37
37
|
},
|
|
38
38
|
"optionalDependencies": {
|
|
39
|
-
"@leonsilicon/remnem-darwin-x64": "0.1.
|
|
40
|
-
"@leonsilicon/remnem-darwin-arm64": "0.1.
|
|
41
|
-
"@leonsilicon/remnem-linux-x64-gnu": "0.1.
|
|
42
|
-
"@leonsilicon/remnem-linux-arm64-gnu": "0.1.
|
|
43
|
-
"@leonsilicon/remnem-linux-x64-musl": "0.1.
|
|
44
|
-
"@leonsilicon/remnem-linux-arm64-musl": "0.1.
|
|
45
|
-
"@leonsilicon/remnem-win32-x64-msvc": "0.1.
|
|
46
|
-
"@leonsilicon/remnem-win32-arm64-msvc": "0.1.
|
|
39
|
+
"@leonsilicon/remnem-darwin-x64": "0.1.10",
|
|
40
|
+
"@leonsilicon/remnem-darwin-arm64": "0.1.10",
|
|
41
|
+
"@leonsilicon/remnem-linux-x64-gnu": "0.1.10",
|
|
42
|
+
"@leonsilicon/remnem-linux-arm64-gnu": "0.1.10",
|
|
43
|
+
"@leonsilicon/remnem-linux-x64-musl": "0.1.10",
|
|
44
|
+
"@leonsilicon/remnem-linux-arm64-musl": "0.1.10",
|
|
45
|
+
"@leonsilicon/remnem-win32-x64-msvc": "0.1.10",
|
|
46
|
+
"@leonsilicon/remnem-win32-arm64-msvc": "0.1.10"
|
|
47
47
|
},
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public",
|