【问题标题】: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 中有什么?

标签: javascript node.js ubuntu npm


【解决方案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 文件夹使其在之后立即工作,但错误不断出现。原来我打开了目录!!呵呵!

          【讨论】:

            猜你喜欢
            • 2020-07-21
            • 1970-01-01
            • 2019-07-24
            • 1970-01-01
            • 1970-01-01
            • 2014-07-20
            • 2022-08-17
            • 2018-10-09
            相关资源
            最近更新 更多