我试图安装generator-angularjs使用Yo(
Yoeman),没有sudo:
npm install -g generator-angular
我得到:
Error: EACCES,mkdir '/usr/lib/node_modules/generator-angular'
当我输入sudo yo,哟告诉我,我不应该使用sudo(这是完全可以理解的)。
我有一个〜/ node_modules目录 – 为什么不安装它的软件包?
发电机设计为全球安装。否则,你总是要安装你将在每个项目中使用的生成器,这是不必要的痛苦。此外,你不会看到可爱的哟菜单,其中列出了所有可用的发电机(除非当然,你在本地安装它们):
设置全局安装的npm
那么,我们如何获得npm在全球安装包?正如你正确地说,你永远不应该用sudo运行yo。有lots of different solutions这个问题,你可以花几个小时讨论他们的利弊。
我个人不喜欢将我的用户包安装到全局/ usr /文件夹中。 / usr /是用于在计算机上的所有用户共享的软件。即使它只使用机器,仍然有很好的理由尊重Unix文件系统层次结构的设计方式。例如,如果您决定在某一点擦除整个节点安装。
我的首选方法是启用npm在全球范围内安装软件包,而不打开$ HOME是to set a local node prefix.这和运行一样简单
echo 'prefix = ~/.node' >> ~/.npmrc
在你的本地shell。之后,您想要调整您的$ PATH,通过调整您喜欢的shell的配置指向全局节点可执行文件的新安装目的地。例如。通过增加
export PATH="$PATH:$HOME/.node/bin"
到你的〜/ .bashrc。之后,你可以很高兴地运行npm install -g generator-angular没有sudo,而不会遇到权限冲突,如果某些东西完全崩溃,你想从头开始,你只需要删除〜/ .node目录。