Mem*_*eng 22 npm reactjs npm-install
当我尝试使用安装一些新软件包时遇到以下错误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
Run Code Online (Sandbox Code Playgroud)
什么地方出了错?我也尝试过npm audit fix --legacy-peer-deps但没有成功。
Sal*_*med 44
可能删除node_modules文件夹和package-lock.json文件,然后重新安装npm可以解决您的问题。
因此,考虑使用以下命令来应用上述操作:
npm remove node_modules
npm remove package-lock.json
npm install
Run Code Online (Sandbox Code Playgroud)
Use*_*ser 13
当我的互联网连接缓慢且不可靠时,我也遇到了同样的问题。我创建了这个脚本,可以运行bash该脚本来修复所有中断的安装:
#!/bin/bash
set -e
while true; do
log="$HOME/.npm/_logs/`ls $HOME/.npm/_logs/ | tail -n 1`"
echo "log: $log"
for path in `cat "$log" | grep 'ENOTEMPTY' | grep -oE "[^']+node_modules[^']+"`; do
echo "removing $path"
rm -rf "$path"
done
if npm install; then
break
fi
done
Run Code Online (Sandbox Code Playgroud)
基本上,我使用/sf/answers/4876790411/中的方法,但我手动处理的事情太多了。
注意:虽然在我看来它有一个O(n * n)运行时间,但它可能有O(n)一个n = number of packages. 所以它对于慢速互联网很有用。如果您的互联网连接速度很快,您可能会更快地删除node_modules目录。
显然,删除 package.json 是有效的,但这并不总是所需的解决方案。有时你想运行:
npm i --package-lock-only //to update package.lock.json
npm audit fix
Run Code Online (Sandbox Code Playgroud)
进而:
npm i
Run Code Online (Sandbox Code Playgroud)
这应该是第一次尝试,但是,我不知道为什么它在我的情况下不起作用,这是在本机场景中。当 npm 尝试写入非空文件夹(在本例中为“node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw”)时,似乎会发生错误“npm install error ENOTEMPTY”。如果你运行:
rm -rf node_modules/@babel/.plugin-proposal-decorators-ysLLPQFw
Run Code Online (Sandbox Code Playgroud)
进而:
npm i
Run Code Online (Sandbox Code Playgroud)
这次应该可以了。不过,这应该是一个 React-Native 的清理过程,当使用像 CRA 这样的 Web 入门工具包时,我以前从未发生过这种情况。
| 归档时间: |
|
| 查看次数: |
77804 次 |
| 最近记录: |