ENOTEMPTY:目录不为空,重命名'' - > ''(JavaScript + NPM + Ubuntu服务器)

时间:2016-02-20 20:11:29

标签: javascript node.js ubuntu npm

好吧,所以我一直在为一个名为discord的流行的类似Teamspeak的程序制作机器人。我在Ubuntu服务器上运行bot,并使用NPM安装来安装各种模块。

目前,该机器人的本地版本工作正常,但在Ubuntu上我似乎无法做“sudo npm install urban”(Urban是唯一一个我遇到问题的模块 - https://www.npmjs.com/package/urban)< / p>

我得到的错误是

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时,甚至没有我可以使用的城市文件夹。

我对编程比较陌生,所以如果我错过任何内容,我很抱歉,如果需要,我很乐意添加更多信息。先谢谢你们。

6 个答案:

答案 0 :(得分:4)

不确定这是否相关,但我收到了同样的错误消息:

  

ENOTEMPTY,重命名&#39; /Users/name/Desktop/bot/node_modules/.request.DELETE'

我只是强制删除文件夹(node_modules / .request.DELETE /),然后运行npm install,一切似乎都正常。

答案 1 :(得分:1)

这是因为.DELETE文件夹中存在node_modules扩展名的隐藏文件夹,请按照以下步骤操作,

Open Terminal (click Go > Utilities and double-click the Terminal app)

现在一次复制并粘贴下面列出的两行,并在每行后按Return键:

defaults write com.apple.finder AppleShowAllFiles YES

killall Finder

Mac现在将显示所有隐藏文件夹,删除带有.DELETE扩展名的模块文件夹并尝试

npm install <packagename>

如果错误

,请使用sudo
sudo npm install <package>

那就是它。你应该可以安装。

答案 2 :(得分:0)

我在运行时遇到了问题

ng build --watch

但尝试

之后
npm install

已修复!

答案 3 :(得分:0)

在我的情况下,节点进程正在锁定文件夹。我用过

lsof | grep DELETE

找出答案。所以我只是停止了运行该过程的webpack-dev-server,然后继续

npm install

因此,请检查哪个进程正在锁定文件/文件夹,然后决定如何解决此问题

答案 4 :(得分:0)

我遇到了同样的问题。实际上,您的node_modules文件夹中有一个扩展名为.DELETE的文件或文件夹。

您可以强制删除扩展名为.DELETE的文件或文件夹。或者,如果您在本地计算机上工作,则可以通过删除node_modules文件夹并按照以下命令重新安装软件包来解决问题:

npm install

答案 5 :(得分:0)

我只是删除了 node_modules 文件夹并再次运行了 npm install ;)