npm安装错误,错误为:ENOENT,chmod [英] npm install errors with Error: ENOENT, chmod
问题描述
我正在尝试全局安装刚刚发布的npm模块.每次尝试从npm或文件夹安装时,都会出现此错误.
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(
sudo npm install -g npm
) - 清除全局npm缓存(
sudo npm cache clear
) - 清除用户npm缓存(
npm cache clear
)
我注意到错误与我链接到路径的文件有关,特别是在npm尝试执行chmod时.没问题,我的lib/cli.js
具有正常权限,而npm在此安装期间具有超级用户权限.
仔细研究了npm文档之后,我发现了一个可以阻止npm制作bin链接(--no-bin-links
)的选项,当我尝试使用它进行安装时,效果很好.
那是怎么回事?这是一些尚未解决的怪异的情况下的问题吗?>
供参考,此处是我上传的模块 >
好吧,看来NPM正在将您的.gitignore
用作.npmignore
文件的基础,因此忽略了/lib
.如果将空白的.npmignore
文件添加到应用程序的根目录,则一切正常.
[edit]-此处有关此行为的更多信息: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
I am trying to globally install an npm module I just published. Every time I try to install, either from npm or the folder, I get this error.
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
I am using sudo and I have triple checked everything in the package everything should work. I did some searching around, and saw a couple of similer cases none of which have been resolved. Here is what I tried.
- Upgrade npm (
sudo npm install -g npm
) - Clear the global npm cache (
sudo npm cache clear
) - Clear the user npm cache (
npm cache clear
)
I noticed that the error had to do with the file I am linking to the path, specifically when npm tried to do a chmod. That shouldn't be a problem, my lib/cli.js
has normal permissions, and npm has superuser permissions during this install.
After digging through the npm docs I found an option that would stop npm from making the bin links(--no-bin-links
), when I tried the install with it, it worked fine.
So what's the deal? Is this some weird fringe case bug that has no solution yet?
Edit: For reference, here is the module I uploaded
Ok it looks like NPM is using your .gitignore
as a base for the .npmignore
file, and thus ignores /lib
. If you add a blank .npmignore
file into the root of your application, everything should work.
[edit] - more info on this behaviour here: https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package
这篇关于npm安装错误,错误为:ENOENT,chmod的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!