Kar*_*ran 71 sudo npm angularjs yeoman
我尝试使用没有sudo的 Yo(Yoeman)安装generator-angularjs :
npm install -g generator-angular
Run Code Online (Sandbox Code Playgroud)
我明白了:
Error: EACCES, mkdir '/usr/lib/node_modules/generator-angular'
Run Code Online (Sandbox Code Playgroud)
当我输入时sudo yo
,哟告诉我我不应该使用sudo(这是完全可以理解的).
我有一个~/node_modules
目录 - 为什么不在那里安装它的包?
pas*_*ssy 169
发电机设计为全球安装.否则,您始终必须安装即将在每个项目中使用的生成器,这会造成不必要的痛苦.此外,你不会看到可爱的yo
菜单,其中列出了所有可用的发电机(当然,除非你安装它们全部在本地):
那么,我们如何让npm在全球范围内安装软件包呢?正如你所说的那样,你永远不应该yo
和sudo一起运行.这个问题有很多不同的解决方案,你可以花几个小时虔诚地讨论他们的利弊.
我个人不喜欢将我的用户包安装到全局 /usr/
文件夹中./usr/
适用于计算机上所有用户共享的软件.即使它只使用机器,仍然有充分的理由尊重Unix文件系统层次结构的设计方式.例如,如果您决定在某一点擦除整个节点安装.
启用npm
全局安装软件包而不会中断的$HOME
首选方法是设置本地节点前缀.这就像跑步一样简单
echo 'prefix = ~/.node' >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)
在你的本地shell中.之后,您需要调整$ PATH,通过调整您喜欢的shell配置来指向全局节点可执行文件的新安装目标.例如,添加
export PATH="$PATH:$HOME/.node/bin"
Run Code Online (Sandbox Code Playgroud)
到你的~/.bashrc
.在那之后,你可以愉快地运行npm install -g generator-angular
没有sudo,没有遇到权限冲突,如果某些东西完全被破坏而你想从头开始,你需要做的就是删除你的~/.node
目录.
pag*_*ibe 27
感谢@passy,我设法最终使用以下内容在ubuntu 13.04上工作(如果有人遇到类似的设置问题):
sudo apt-get update
sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
Run Code Online (Sandbox Code Playgroud)
试图运行:
npm install -g yo
Run Code Online (Sandbox Code Playgroud)
结果
Error: EACCES, mkdir '/usr/lib/node_modules/yo'
Run Code Online (Sandbox Code Playgroud)
固定使用:
echo prefix = ~/.node >> ~/.npmrc
echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
运行:
yo webapp
Run Code Online (Sandbox Code Playgroud)
导致:
Error: EACCES, permission denied '/home/username/.config/configstore/update-notifier-yo.yml'
Run Code Online (Sandbox Code Playgroud)
固定使用:
sudo chown yourusername:yourusername /home/yourusername/.config/configstore/update-notifier-yo.yml
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
45771 次 |
最近记录: |