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

npm安装错误,错误: ENOENT,chmod
EN

Stack Overflow用户
提问于 2013-08-01 17:49:11
回答 39查看 378.4K关注 0票数 158

我正在尝试全局安装我刚刚发布的npm模块。每次我尝试安装时,无论是从npm还是从文件夹,我都会得到这个错误。

代码语言:javascript
复制
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
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.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /home/giodamlio/npm-debug.log
npm ERR! not ok code 0

我正在使用sudo,我已经对包中的一切进行了三次检查,一切都应该正常工作。我在周围做了一些搜索,发现了几个类似的案例,但都没有解决。这是我尝试过的。

升级npm缓存全局npm (sudo npm install -g npm)

  • Clear (sudo npm cache clear)

  • Clear用户npm (npm cache clear)

我注意到这个错误与我链接到路径的文件有关,特别是当npm试图执行chmod时。这应该不是问题,我的lib/cli.js拥有普通权限,而npm在安装过程中拥有超级用户权限。

在深入研究npm文档后,我发现了一个可以阻止npm创建bin链接(--no-bin-links)的选项,当我尝试使用它进行安装时,它工作得很好。

那是怎么回事呢?这是一些还没有解决方案的weird fringe case bug吗?

编辑:仅供参考, 是我上传的模块

EN

回答 39

Stack Overflow用户

回答已采纳

发布于 2013-08-02 23:03:16

好的,看起来NPM使用你的.gitignore作为.npmignore文件的基础,因此忽略了/lib。如果您将一个空白的.npmignore文件添加到应用程序的根目录中,那么一切都应该正常工作。

一种更好、更明确的方法是使用允许列表而不是不允许列表,并使用package.json中的“文件”字段来指定包中的文件。

编辑-有关此行为的更多信息,请单击此处:https://docs.npmjs.com/cli/v7/using-npm/developers#keeping-files-out-of-your-package

票数 156
EN

Stack Overflow用户

发布于 2014-05-03 23:06:08

我也遇到了类似的问题,

代码语言:javascript
复制
npm cache clean

解决了它。

票数 121
EN

Stack Overflow用户

发布于 2014-01-10 07:52:44

当我尝试运行npm install -g bower时,这个问题不知何故在Mac上出现了。它给了我许多错误,因为我找不到像graceful-fs这样的东西。我不确定我最初是如何安装npm的,但它看起来可能是使用自制软件与node一起安装的。我第一次跑

代码语言:javascript
复制
brew uninstall node

这将从我的路径中删除nodenpm。从那里我只是重新安装了它

代码语言:javascript
复制
brew install node

当它完成时,我的路径上有了nodenpm,我可以运行

代码语言:javascript
复制
rm -rf ~/.npm
npm install -g bower

这样就成功地安装了bower。

更新brew公式和升级安装程序似乎对我不起作用,我不确定原因。删除.npm文件夹对其他人来说是可行的,我尝试过,但没有成功。我这次这么做是为了以防万一。还请注意,以下两种方法都没有为我解决问题,尽管它为其他人解决了问题:

代码语言:javascript
复制
npm cache clean
sudo npm cache clean
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17990647

复制
相关文章

相似问题

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