昨天开始我npm install的时候就开始不停的报错,报错原因总是
ENOENT: no such file or directory, rename 'C:\myworks\newciphermachine\node_modules\xxxxxxx' -> 'C:\myworks\newciphermachine\node_modules\.xxxxxxx.DELETE'
很神奇的是,我每次安装都不成功,每次都在不同的npm包上报错。
在这之前我从来没有出过这种问题,我无非就是想引入一个新包,然后习惯性的npm install --save-dev 它。但是失败了。我意识到可能是我的node_modules出了什么问题,于是我整个删除了目录,并用npm cache clean -f强制清理了缓存,重新npm install,还是报错。
之后就是我在开头的时候讲的,我不断的npm install,每次都报相同的错,每次都报在不同的包上。
我开始意识到可能是npm本身有bug了,于是卸载重装了整个nodejs(连npm一起),然后npm install,成功了。
正当我以为自己可以回归前端开发的时候,我在安装新包时又一次碰到了同样的报错。
简直令人抓狂了。
我开始意识到这可能是npm本身的一个bug,于是去github找有没有人跟我有相同的问题——果然有,还不少。
比如这个:npm install fails with "ENOENT: no such file or directory" on .DELETE files · Issue #17444 · npm/npm
看这个issue的讨论的时候,我发现一条回复提到了VSCode,于是我意识到,在我唯一那一次成功npm install,是我卸载重装完nodejs后直接就去开终端运行npm install。
其他的时候,由于涉及到编辑package.json文件,我的VSCode都是在运行状态的!
我果断关掉VSCode,再次运行npm install,问题再也没有发生。
后来,我去看了一眼vscode的github,果然也有类似issue(Is code fighting with npm? · Issue #28593 · Microsoft/vscode),不过目前为止似乎没发现bug的本质,该bug也继续存在。
等待VSCode修复吧,在这之前,我需要npm install的时候,都得关闭一下VSCode了。