Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 带nodejs和angular的yeoman许可问题_Node.js_Angularjs_Ubuntu - Fatal编程技术网

Node.js 带nodejs和angular的yeoman许可问题

Node.js 带nodejs和angular的yeoman许可问题,node.js,angularjs,ubuntu,Node.js,Angularjs,Ubuntu,我正试图与yeoman一起启动angular web应用程序,但我在尝试安装新生成器时遇到了权限问题。我可以绕过sudo安装generator,但运行时会出现权限错误 **yo** angular 我推断是因为它试图访问当前用户没有权限访问的全局npm模块,并且我无法使用sudo运行Yo。我做过很多谷歌搜索,它们都涉及到对.bashrc中的NODE_路径的某种类型的攻击,或者将节点模块移动到主目录。有人找到了解决这个问题的简单方法吗 下面是我在截图中遇到的问题: yo安装良好 当我试图在没

我正试图与yeoman一起启动angular web应用程序,但我在尝试安装新生成器时遇到了权限问题。我可以绕过sudo安装generator,但运行时会出现权限错误

**yo** angular
我推断是因为它试图访问当前用户没有权限访问的全局npm模块,并且我无法使用sudo运行Yo。我做过很多谷歌搜索,它们都涉及到对.bashrc中的NODE_路径的某种类型的攻击,或者将节点模块移动到主目录。有人找到了解决这个问题的简单方法吗

下面是我在截图中遇到的问题:

yo安装良好

当我试图在没有sudo抱怨的情况下安装发电机时。。

使用sudo通行证安装。

最后,当我试着跑的时候,它断了。。我相信这是因为yo是以用户身份运行的,而且我已经用sudo权限安装了所有东西。我怎样才能度过这一关


我想,它之所以会中断,是因为整个目录树都是作为超级用户创建的

你提到的关于使用
节点路径和主目录的黑客不是黑客。它们的存在正是出于同样的原因。告诉节点在何处查找包。而
.bashrc
是您应该更改此类shell变量的地方

假设您将
~/.node\u模块
添加到
node\u路径
,则可以在其中安装所有“全局”模块。您还可以更改
/usr/local
上的权限。但在linux世界上,这是不推荐的

我还强烈建议不要在npm中使用全局安装。使用-g和
npm链接
在开发时很方便,但您不应该指望它们。当您忘记在自己的
package.json
上添加包时,可能会在代码中引入一些微妙的错误,但它是全局安装的

您可以在
/node\u modules/.bin/
目录中找到所有可执行的包,而不是全局安装

但是假设您不想一直键入
/node\u modules/.bin/yo
,您可以在
.bashrc
上创建别名

alias yo="$PWD/node_modules/.bin/yo"
它会像预期的那样工作,如果没有安装yo软件包,就会出现错误