首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >npm安装错误ENOTDIR

npm安装错误ENOTDIR
EN

Stack Overflow用户
提问于 2012-11-19 19:25:07
回答 4查看 26.7K关注 0票数 16

我对Node.js非常陌生,正在尝试使用npm安装Flatiron,但它给我一个错误。

代码语言:javascript
复制
sudo npm install flatiron -g

我得到了-

代码语言:javascript
复制
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

这里出了什么问题?毫无线索。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-11-19 19:46:57

试一试

代码语言:javascript
复制
sudo mkdir -p /home/siddharthsaha/tmp
sudo npm cache clear

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

票数 20
EN

Stack Overflow用户

发布于 2013-04-18 01:10:12

只是解决了这个问题。这是因为在主目录中有一个名为tmp的文件。

代码语言:javascript
复制
rm -rf ~/tmp
sudo npm cache clear
sudo npm install -g node

还有..。如果您正在尝试安装npm,那么同样的错误和解决方案也适用--删除~/tmp

票数 21
EN

Stack Overflow用户

发布于 2014-10-02 01:51:01

下面是从源代码安装给定版本的步骤,没有根注释-这将安装nodejs,它为您提供了节点和npm,它们在每个版本中都会一起出现。

要重新开始,请删除以前安装的node.js和npm以及以下内容:

代码语言:javascript
复制
sudo mv ~/.npmrc ~/.npmrc_ignore
sudo mv ~/.npm   ~/.npm_ignore
sudo mv ~/tmp    ~/tmp_ignore
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore

要以自己而不是root用户身份安装nodejs和npm,请执行以下命令(OSX/linux):

代码语言:javascript
复制
export NODE_PARENT=${HOME}/bin_0_10_32

mkdir ${NODE_PARENT}

下载来源:http://nodejs.org/download/

代码语言:javascript
复制
cd node-v0.xxxx

./configure   --prefix=${NODE_PARENT}/nodejs

make -j8
make install   #  IMPORTANT this is NOT using sudo
               # not wanted since installing into $USER owned $NODE_PARENT

这会把它放到上面--prefix定义的目录中

代码语言:javascript
复制
export PATH=${NODE_PARENT}/nodejs/bin:$PATH

定义环境变量NODE_PATH,以便节点可以找到模块的目录,否则npm install xxx会将新安装的模块放入当前目录:

代码语言:javascript
复制
export NODE_PATH=${NODE_PARENT}/nodejs/lib/node_modules

使用语法: npm install -g some_cool_module全局-g将其安装到目录$NODE_PATH中,而不是您的$PWD中

nodejs安装还为您提供了npm:

代码语言:javascript
复制
ls -la ${NODE_PARENT}/nodejs/bin

使用全局标志-g安装的后续模块将自动将它们的~二进制文件~放到上面的bin目录中...如browserify

现在,将上述三个导出xxx=yyy命令放到~/.bashrc或类似的文件中,这样就可以设置环境了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13452791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档