npm命令-是否为sudo? [英] npm command - sudo or not?
问题描述
当前我总是运行sudo npm install <package-name>
,但据我了解这是不正确的.
Currently I always run sudo npm install <package-name>
but as I understand it's not correct.
我希望有机会不要将其用作root/Administrator.
我遵循了一些建议,并使用了该命令sudo chown -R <username> ~/.npm
,但是它不起作用...
I want to have opportunity not to use it as root/Administrator.
I followed some advice and used this command sudo chown -R <username> ~/.npm
but it won't work...
例如,这是我的npm install jade
...
npm http 200 https://registry.npmjs.org/amdefine
npm http GET https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm http 200 https://registry.npmjs.org/amdefine/-/amdefine-0.0.5.tgz
npm ERR! Error: EACCES, symlink '../jade/bin/jade'
npm ERR! { [Error: EACCES, symlink '../jade/bin/jade'] errno: 3, code: 'EACCES', path: '../jade/bin/jade' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
如您所见,下载成功开始,但随后失败..
as you see download started successfully but then failed..
我想知道在npm上禁止sudo的最佳方法是什么?
I'm wondering what is the best way to disallow sudo on npm?
推荐答案
不带sudo
的npm install -g
节点模块也是可能的(并且建议).
It's possible (and advisable) to npm install -g
node modules without sudo
.
检查您的/usr/local/share/npm/bin
文件夹的权限.我已经通过brew安装了node和npm(没有sudo
),并且那个特定的文件夹最终被root拥有.
Check the permission of your /usr/local/share/npm/bin
folder. I had installed node and npm through brew (without sudo
) and that particular folder ended up being owned by root.
这是一劳永逸的解决方案:
This fixed it for once and for all:
$ sudo chown $(whoami) /usr/local/share/npm/bin
(关于使用npm禁止sudo
:您必须为此调整npm.您自己的节点代码可以使用 https://npmjs.org/package/sudo-block ,npm install sudo-block
)
(As for disallowing sudo
with npm: you'd have to tweak npm for that. Your own node code could make use of https://npmjs.org/package/sudo-block, npm install sudo-block
)
编辑:即使此方法有效,我也不再使用-g
.而是使用前缀(请参阅下一个答案),或者最好使用NIX https://unix.stackexchange.com/a/381797(即使在OSX上也是如此)
even though this works, I no longer use -g
. Instead use prefix (see next answer), or better yet use NIX https://unix.stackexchange.com/a/381797 (even on OSX)
这篇关于npm命令-是否为sudo?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!