npm 安装错误 ENOTEMPTY:目录不为空,

npm install error ENOTEMPTY: directory not empty,

我在尝试使用 npm install 安装一些新软件包时遇到了以下错误。它发生在我执行 npm install a-new-package --save 然后删除 package-lock.json 文件以刷新所有内容时。

npm ERR! code ENOTEMPTY
npm ERR! syscall rename
npm ERR! path /Users/memphismeng/Documents/React Programming/Foot-in-The-Door/mobile/fitd/node_modules/@babel/plugin-proposal-decorators
npm ERR! dest /Users/memphismeng/Documents/React Programming/Foot-in-The-Door/mobile/fitd/node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw
npm ERR! errno -66
npm ERR! ENOTEMPTY: directory not empty, rename '/Users/memphismeng/Documents/React Programming/Foot-in-The-Door/mobile/fitd/node_modules/@babel/plugin-proposal-decorators' -> '/Users/memphismeng/Documents/React Programming/Foot-in-The-Door/mobile/fitd/node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw'

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/memphismeng/.npm/_logs/2021-06-15T18_07_01_162Z-debug.log

出了什么问题?我也试过 npm audit fix --legacy-peer-deps 但没用。

可能会删除 node_modules 文件夹和 package-lock.json 文件,然后重新安装 npm 将解决您的问题。

因此,请考虑使用以下命令来应用上述操作:

remove node_modules 
remove package-lock.json
npm install 

显然,删除 package.json 是可行的,但这并不总是理想的解决方案。有时你想 运行:

 npm i --package-lock-only //to update package.lock.json
 npm audit fix

然后:

npm i

这应该是第一次尝试,但我不知道为什么它在我的情况下不起作用,这是在反应本机场景中。当 npm 尝试写入非空文件夹时,似乎发生错误“npm install error ENOTEMPTY”,在本例中为“node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw” .如果你 运行:

rm -rf node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw

然后:

npm i

这次应该可以了。不过,这应该是 react-native 的清理过程,在使用像 CRA 这样的网络入门工具包时,我以前从未遇到过这种情况。

我在使用 npm 时遇到了一个非常相似的问题。 对我来说很有魅力的是更新项目的包和依赖项,特别是 react-scripts.

检查你的过时包有哪些:

npm outdated

或者,按照 this guy in medium, 的代码片段自动检查并逐一更新您的包。