I recently struggled for a while with an
npm error thrown when executing
npm install of some package. The error message was
npm ERR! enoent ENOENT: no such file or directory, rename 'D:\\WebApp\\node_modules\\lz-string' -> 'D:\\WebApp\\node_modules.lz-string.DELETE'
Finally, I found a solution and a reason for that issue.
The error occurred when I was trying to install
@testing-library/react npm package. It looked like that:
If you ever get this error, the hotfix is to follow these steps:
- run command
npm cache clean --force
- run command
- install the package again with
npm install your-package-name
It should all work fine after that.
If these commands still don’t solve your issue, and you use
git as a source control system, you can try the unbeatable
git clean -fdx command. After that, run
npm install again. Beware – it removes all files not checked in to git. It may also remove your IDE settings etc., so use with care.
But it’s only a hotfix, a solution for now to unblock you.
The real reason for this issue in my case turned out to be related to
jest. However, not to the testing library itself, but to jest extension for Visual Studio Code.
The reason for the issue is the jest tests runner working in the background. You can see that in the VS Code bottom bar:
The real solution is to disable jest runner when installing new packages. You can do it with a
Jest: Stop Runner command in Ctrl+Shift+P:
I don’t know exactly why this is an issue. I guess jest runner is blocking some files in
node-modules, so they cannot be renamed/processed. I hope it helps you too 😉