Open nmoinvaz opened 4 years ago
It also happens when you copy a Node.js project from an SSD to a USB drive, it could even take half an hour.
One tip that can help here: Hold Shift when you invoke the delete command (whether from keyboard or via the menu). This will invoke the permanent delete flow, rather than moving everything to the recycle bin. It should usually be near instantaneous.
Of course, make sure you really want to delete things before using this approach :-)
I ran a test to see the experience when using shift+delete
. The experience is a bit better but it still takes a ton of time even when deleting permanently.
When deleting files normally, Windows Explorer will enumerate all the files and see if the file sizes are too big to be recycled. If they are too big to be recycled Explorer will prompt asking if you want to permanently delete them. I think that a change could be made to Windows Explorer, that if it detected 10,000+ files it would ask if you want to permanently delete them as the delete operation could take a lot time. But even if Explorer had this change the delete option is no where near the speed it is on macOS.
I think I have very little skin in this particular game. I simply don't go there with projects and my projects are usually pretty small, befitting the size of my brain.
At the same time this strikes me as a kind of micro-managed compensation for badly-architected source, build structures, and out-of-control dependencies. I wonder what is served by pandering to that.
Now, I have been thinking that since pre-compiled headers and the ugliness of windows.h
, so you can calibrate my attitude from that. I will now stifle myself for a few more years.
Taking another look at this, it feels like the most actionable of the original suggestions is this one:
- Delete the folder immediately, and notify all apps of file deletes in the background.
I wonder if that would really speed things up? Seems like a nice idea, if so π
I recommend using fastcopy. It is much faster than Windows Explorer when it comes to doing operations on a large number of files.
It also happens when you copy a Node.js project from an SSD to a USB drive, it could even take half an hour.
When copying a large number of files to a slow USB drive, consider compressing the folder before copying.
This should have way more traction. It takes more time to delete the folder than it does to run npm install, pull down all the packages and install them! Is this because all the files are not stored contiguously?
Plus one for this issue
Been experiencing this issue for years now. As much as I love slingin code on Windows, this kills it for me...
This is not just an issue with windows. I use a macbook pro 2015 w/ 16gb of ram. Also takes forever to delete a node_modules folder. I believe my experience was significantly faster on linux than either macos or windows. But macos ssd is not nearly as fast as you'd expect.
This is not just an issue with windows. I use a macbook pro 2015 w/ 16gb of ram. Also takes forever to delete a node_modules folder. I believe my experience was significantly faster on linux than either macos or windows. But macos ssd is not nearly as fast as you'd expect.
I daily a MacBook Pro (2019, and now a 2020) and never had any issues with node_modules
. Granted mine isn't 2015.
I also, for a brief period, had a previous gen Mac Mini that I upgraded its spinning rust to a (still on sata) SSD. Still magnitudes faster than a current day Windows machine running on a pcie (nvme) SSD attempting to delete a node_modules
folder.
In my case occasionally I need to delete node_modules to reinstall all packages. Instead of deleting node_modules directly I do the following:
~$ mv node_modules node_modules.del
~$ npm i
And from the VSCode/File Explorer I Delete < node_modules.del
This way the packages can install under node_modules while node_modules.del is deleted. The deletion process is not quicker, but the reinstall can take place simultaneously. VSCode might complain about too many files to index until the folder is deleted if reinstalling at the same time.
I have nothing to add other than this has been something that's bothered me for so long but I've only just started to consciously look into it since working on a large project with a larger node_modules than before. rm -rf
ing on a crappier macbook 3 years older should not be an order of magnitude faster than on windows.
Funny how and small project like https://fastcopy.jp/ can do it better than what windows can.... Especially on shift + delete, you would expect the same speed uggh :(
try rm -Recurse -Force .\node_modules\
in powershell inside the project directory.
4min 30sec - "Shift+Delete" aka "Permanently Delete" 45sec - "rm -Recurse -Force .\node_modules\" 16sec - "rimraf .\node_modules\"
An added benefit is that rimraf is cross-platform π
For comparison, I also have an M1 macbook, and running "rm -rf .\node_modules\" takes about 15sec, so likely this is as good as it'll get
Use rmdir node_modules
in Powershell inside the project directory.
It also happens when you copy a Node.js project from an SSD to a USB drive, it could even take half an hour.
just delete the node_modules folder then copy it. Copying process will be completed in a dew second. Then in the new location simply run "npm i". Note: you wont loosew any folder in node_modules. All of your dependencies will be downloaded with the command "npm i""
Second Option you can try: create zip file of that folder containing node_modules then copy it. But option 1 is more efficient.
Fastest way for me is:
del /f/s/q node_mdules > nul
rmdir /s/q node_modules
Got it from https://stackoverflow.com/a/6208144/141243
Fastest way for me is:
del /f/s/q node_mdules > nul rmdir /s/q node_modules
Got it from https://stackoverflow.com/a/6208144/141243
This does not resolve the issue, it produces the same behavior as described in the original report.
Fastest way for me is:
del /f/s/q node_mdules > nul rmdir /s/q node_modules
Got it from https://stackoverflow.com/a/6208144/141243
This does not resolve the issue, it produces the same behavior as described in the original report.
Its an alternative. And it can't produce the same behavior, because instead of the file explorer its using a cmd window. Totally different UI.
Fastest way for me is:
del /f/s/q node_mdules > nul rmdir /s/q node_modules
Got it from https://stackoverflow.com/a/6208144/141243
It's a valid solution, just wish Microsoft would run that via the file explorer UI to avoid the long delete times.
It doesn't avoid the long delete times.
On Mon, Mar 13, 2023, 9:17 PM ChrisRibe @.***> wrote:
Fastest way for me is:
del /f/s/q node_mdules > nul rmdir /s/q node_modules
Got it from https://stackoverflow.com/a/6208144/141243
It's a valid solution, just wish Microsoft would run that via the file explorer UI to avoid the long delete times.
β Reply to this email directly, view it on GitHub https://github.com/microsoft/Windows-Dev-Performance/issues/21#issuecomment-1467290024, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAH24VH7DENLOBU4VCBVOJTW37PMJANCNFSM4PQWRLTQ . You are receiving this because you commented.Message ID: @.***>
Yes it does, see https://superuser.com/a/289399/471565
Fastest way for me is:
del /f/s/q node_mdules > nul rmdir /s/q node_modules
Its an alternative. And it can't produce the same behavior, because instead of the file explorer its using a cmd window. Totally different UI.
Above solution is faster but not the fastest (compared to Mac or Linux). Kind of hacked solution. Plus, its not user-friendly and very risky to use on daily basis. Imagine, you copy-pasted del /f/s/q * > nul
command on a wrong folder, say a default folder when you open command prompt. Your lose your windows user profile.
Is there any other way to solve this problem? Such as one cli or plugin?
4min 30sec - "Shift+Delete" aka "Permanently Delete" 45sec - "rm -Recurse -Force .\node_modules" 16sec - "rimraf .\node_modules"
An added benefit is that rimraf is cross-platform π
For comparison, I also have an M1 macbook, and running "rm -rf .\node_modules" takes about 15sec, so likely this is as good as it'll get
I found that rimraf is really much faster, thanks
You could also try using my tool to delete.
It should be much faster than the other tools.
Grab it from here https://github.com/batzen/Batzendev.Tools/releases/tag/v6.0.0 or install via chocolatey choco install batzendev.tools
.
Feedback is appreciated.
@batzen on your website it says that the tool is MIT licenced, but where is the actual source?
MIT doesn't require published sources. It's a private hobby project and I don't want to deal with all the overhead that comes with going OSS. I have enough OSS projects where I have to deal with all that. π So the tool is free, but not OSS.
below helped me.. https://spfx-app.dev/delete-the-nodemodules-folder-50-faster-on-windows
Environment
Description
When working on a project that utilizes package manager
npm
, it creates anode_modules
directory that contains at least 100,000 files. On larger projects it can be even more. Deleting thenode_modules
directory from File Explorer takes a long time, and some times it goes through capturing all the information about the files and fails on some further steps.Often times File Explorer is the first way that users and developers go to delete files. Only after File Explorer fails do they then have to result to a command prompt. It is quite annoying to have to drop to a command prompt just for this folder. I know I can't be the only developer who experiences this problem.
For a comparison, this is how long it takes to delete the folder on macOS:
I realize that both operating systems do different things behind the scenes, but it is unlikely that I can believe that nothing can be done to improve the experience with deleting folders that have lots of files.
Steps to reproduce
node_modules
Expected behavior
It should not take so long to delete all the files.
Actual behavior
It takes a significant amount of time. File Explorer goes through various steps of calculating time, etc, after which it presents an UAC dialog, and then another permissions dialog at which point I end up just canceling.
Suggestions