npm安装错误ENOTDIR

Sid*_*rth 15 node.js npm

我是Node.js的新手并尝试使用npm安装Flatiron,但它给了我一个错误.

sudo npm install flatiron -g
Run Code Online (Sandbox Code Playgroud)

而且我得到了 -

npm http GET https://registry.npmjs.org/flatiron
npm http 304 https://registry.npmjs.org/flatiron
npm ERR! Error: ENOTDIR, mkdir '/home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Linux 3.2.0-24-generic
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "flatiron" "-g"
npm ERR! cwd /home/siddharthsaha/denarit
npm ERR! node -v v0.8.14
npm ERR! npm -v 1.1.65
npm ERR! path /home/siddharthsaha/tmp/npm-28554/1353323290836-0.20847953506745398
npm ERR! code ENOTDIR
npm ERR! errno 27
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/siddharthsaha/denarit/npm-debug.log
npm ERR! not ok code 0
Run Code Online (Sandbox Code Playgroud)

这有什么不对?我没有线索.

Dai*_*thí 21

刚解决了这个问题.因为tmp在主目录中有一个文件.

rm -rf ~/tmp
sudo npm cache clear
sudo npm install -g node
Run Code Online (Sandbox Code Playgroud)

另外......如果您尝试安装npm,则应用相同的错误和解决方案 - 删除 ~/tmp


Tol*_*yüz 19

尝试

sudo mkdir -p /home/siddharthsaha/tmp
sudo npm cache clear
Run Code Online (Sandbox Code Playgroud)

在启动安装脚本之前,由于npm http 304 https://registry.npmjs.org/flatiron行声明该模块来自缓存.并且还ENOTDIR声明没有目录.因此,清空缓存可以解决您的问题.

  • 在我的情况下,我的家庭目录中有一个名为"tmp"的文件,所以我只需要重命名这个tmp文件,这样npm可以创建tmp作为目录. (3认同)