ENOTEMPTY: 目录不为空,重命名 '' -> '' (JavaScript + NPM + Ubuntu server)
Posted
技术标签:
【中文标题】ENOTEMPTY: 目录不为空,重命名 \'\' -> \'\' (JavaScript + NPM + Ubuntu server)【英文标题】:ENOTEMPTY: directory not empty, rename '' -> '' (JavaScript + NPM + Ubuntu server)ENOTEMPTY: 目录不为空,重命名 '' -> '' (JavaScript + NPM + Ubuntu server) 【发布时间】:2021-12-27 06:50:16 【问题描述】:好的,所以我一直在为一个名为 discord 的流行的类似 Teamspeak 的程序制作机器人。我在 Ubuntu 服务器上运行机器人,并使用 NPM install 安装各种模块。
目前,该机器人的本地版本运行良好,但在 Ubuntu 上我似乎无法执行“sudo npm install urban”(Urban 是我遇到问题的唯一模块 - https://www.npmjs.com/package/urban)
我得到的错误是
npm ERR! Linux 4.2.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "urban"
npm ERR! node v5.6.0
npm ERR! npm v3.6.0
npm ERR! path /var/www/chatbot/node_modules/urban
npm ERR! code ENOTEMPTY
npm ERR! errno -39
npm ERR! syscall rename
npm ERR! ENOTEMPTY: directory not empty, rename '/var/www/chatbot/node_modules/urban' -> '/var/www/chatbot/node_modules/.urban.DELETE'
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /var/www/chatbot/npm-debug.log
当我 cd 到 node_modules 文件夹并执行 ls 时,我什至没有可以使用的城市文件夹。
我对编程比较陌生,所以如果我错过了什么,我很抱歉,如果需要,我很乐意添加更多信息。提前谢谢各位。
【问题讨论】:
ls /var/www/chatbot/node_modules/urban
提供了什么?另外,node-debug.log 中有什么?
【参考方案1】:
这是因为您的node_modules
文件夹中存在一个扩展名为.DELETE
的隐藏文件夹,请按照以下步骤操作,
Open Terminal (click Go > Utilities and double-click the Terminal app)
现在将下面列出的两行复制并粘贴到终端之一,并在每一行后按回车键:
defaults write com.apple.finder AppleShowAllFiles YES
killall Finder
Mac 现在会显示所有隐藏文件夹,删除带有.DELETE
扩展名的模块文件夹并尝试
npm install <packagename>
如果出现错误,请使用sudo
sudo npm install <package>
就是这样。应该可以安装了。
【讨论】:
【参考方案2】:我收到了同样的错误信息:
ENOTEMPTY,重命名 '/Users/name/Desktop/bot/node_modules/.request.DELETE'
我刚刚删除文件夹 (node_modules/.request.DELETE/),然后运行 npm install
,一切似乎都运行正常。
【讨论】:
你是如何强制删除的? @MemphisMeng rm -rf 文件夹名【参考方案3】:我在运行时遇到了问题
ng build --watch
但尝试后
npm install
已修复!
【讨论】:
【参考方案4】:在我的情况下,节点进程正在锁定文件夹。我用过
lsof | grep DELETE
找出答案。所以我只是停止了正在运行该进程的webpack-dev-server
并继续
npm install
所以检查是什么进程锁定了文件/文件夹,然后决定如何解决这个问题
【讨论】:
【参考方案5】:我遇到了同样的问题。实际上,您的 node_modules 文件夹中有一个带有 .DELETE 扩展名的文件或文件夹。
您可以强制删除扩展名为 .DELETE 的文件或文件夹。或者,如果您在本地计算机上工作,可以通过删除 node_modules
文件夹并按照以下命令重新安装软件包来解决问题
npm install
【讨论】:
【参考方案6】:我只是删除了node_modules
文件夹并再次运行npm install
;)
【讨论】:
“没有人,没问题”——斯大林)【参考方案7】:我也遇到了这个问题。删除nodes_modules 文件夹使其在之后立即工作,但错误不断出现。原来我打开了目录!!呵呵!
【讨论】:
以上是关于ENOTEMPTY: 目录不为空,重命名 '' -> '' (JavaScript + NPM + Ubuntu server)的主要内容,如果未能解决你的问题,请参考以下文章
在 Angular CLI 应用程序中安装 express 时出现“ENOTEMPTY:目录不为空,rmdir .....”错误。
无法清除此错误 - 安装 Expo CLI 时的 ENOTEMPTY