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

nginx location 块捕获一个值并设置cookie,如果它不为空,则重定向到新的URL

提取Pdf图片(Python_2)

命名查询休眠