【问题标题】:yeoman permission issue with nodejs and angularnodejs和角度的yeoman权限问题
【发布时间】:2014-05-18 07:18:25
【问题描述】:

我正在尝试使用 yeoman 启动 Angular Web 应用程序,但在尝试安装新生成器时出现权限问题。我可以绕过并使用 sudo 安装生成器,但运行时出现权限错误

**yo** angular

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

下面是我的截图问题:

安装正常

当我尝试安装生成器时没有 sudo 抱怨..

使用 sudo 通行证安装。

最后,当我尝试运行 yo angular 时,它会中断。我相信这是因为 yo 以用户身份运行,并且我已经使用 sudo 权限安装了所有东西。我怎样才能克服这个问题?

【问题讨论】:

    标签: node.js angularjs ubuntu


    【解决方案1】:

    我猜它中断的原因是因为整个目录树是作为超级用户创建的。

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

    假设您添加了~/.node_modules 给您NODE_PATH,那么您可以在其中安装所有“全局”。您还可以更改/usr/local 的权限。但是在不推荐的Linux世界上。

    我也强烈建议不要将全局安装与 npm 一起使用。开发时使用 -g 和 npm link 很方便,但你不应该指望它们。当您忘记在 package.json 上添加一个包时,您可以在代码中引入细微的错误,但它是全局安装的。

    您可以在./node_modules/.bin/ 目录中找到所有可执行包,而不是全局安装。

    但是假设您不想一直输入./node_modules/.bin/yo,您可以在.bashrc 上创建一个别名。

    alias yo="$PWD/node_modules/.bin/yo"
    

    它会像预期的那样工作,如果没有安装 yo 包,你会得到一个错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 2021-01-03
      • 1970-01-01
      • 1970-01-01
      • 2013-05-25
      相关资源
      最近更新 更多