目前我总是跑步sudo npm install <package-name>
但据我了解,这是不正确的。
我希望有机会不将其用作 root/管理员。
我遵循了一些建议并使用了这个命令sudo chown -R <username> ~/.npm
但它不会工作...
例如,这是我的输出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.
如您所见,下载成功开始但随后失败。
我想知道在 npm 上禁止 sudo 的最佳方法是什么?
这是可能的(并且建议)npm install -g
节点模块不带sudo
.
检查您的许可/usr/local/share/npm/bin
文件夹。我已经通过brew安装了node和npm(没有sudo
)并且该特定文件夹最终由 root 拥有。
这一劳永逸地解决了这个问题:
$ sudo chown $(whoami) /usr/local/share/npm/bin
(至于不允许sudo
使用 npm:你必须为此调整 npm。您自己的节点代码可以利用https://npmjs.org/package/sudo-block https://npmjs.org/package/sudo-block, npm install sudo-block
)
EDIT:尽管这有效,但我不再使用-g
。而是使用前缀(参见下一个答案),或者更好地使用 NIXhttps://unix.stackexchange.com/a/381797 https://unix.stackexchange.com/a/381797(即使在 OSX 上)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)