【问题标题】:Can't install Angular CLI, issue with permissions?无法安装 Angular CLI,权限问题?
【发布时间】:2018-06-12 02:47:52
【问题描述】:

我似乎无法安装 Angular CLI(来自 the Angular tutorial)。我对命令行不是很熟悉,所以请耐心告诉我需要提供哪些信息。

Screenshot of the error in the Terminal window

我尝试以 root/Administrator 身份安装,但我得到了同样的错误。我正在我的个人 MacBook Air 笔记本电脑上安装。

编辑:我也尝试过从命令行强制和 sudo 安装,但无济于事。

编辑(2):根据评论者的建议,我已经测试了node和npm的版本:

  • node -v 导致v8.11.2

  • npm -v 导致5.6.0

  • npm i -g @angular/cli typescript 导致以下错误:

    npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

编辑(4):

下面是终端输入以下命令后的截图:

sudo npm install -g @angular/cli

Error after sudo install of @angular/cli

编辑(5): 输入以下命令后的截图:

sudo chown -R kailynnelson /usr/local/lib/node_modules

sudo npm install -g @angular/cli

Error after sudo chown -R $USER and sudo npm install

【问题讨论】:

    标签: angular macos terminal npm-install


    【解决方案1】:

    解决方案一:

    sudo chown -R $USER /usr/local/lib/node_modules
    

    解决方案 2:引用 docs.npmjs.com

    为了最大程度地减少权限错误的可能性,您可以将 npm 配置为使用不同的目录。在本例中,它将是您主文件夹中的隐藏目录。

    在开始之前备份您的计算机。

    为全局安装创建一个目录:

     mkdir ~/.npm-global
    

    配置 npm 以使用新的目录路径:

     npm config set prefix '~/.npm-global'
    

    打开或创建一个 ~/.profile 文件并添加以下行:

     export PATH=~/.npm-global/bin:$PATH
    

    回到命令行,更新你的系统变量:

     source ~/.profile
    

    引用结束。

    这样,您会将npmnode_module 目录设置为您的主目录。全局安装 npm 模块应该没有任何访问问题,您可以在没有 sudo 的情况下运行它们

    【讨论】:

    • 嗨@darko99,你能描述一下这是做什么的吗?
    • @Krn 它将上述目录的所有权转移给当前用户,有效地赋予完整的读取、写入、删除等权限。这应该会让您失去写入权限,并防止该目录将来出现类似的问题。
    • 似乎很奇怪,我必须在命令之前添加sudo。这是为什么?尝试您的解决方案后仍然没有骰子;我更新了原始帖子以包含终端窗口的屏幕截图(请参阅编辑 5)。
    • @Krn sudo 用于将您的命令提升到管理员级别。如果命令想要更改系统文件或在系统目录下创建,则需要该提升。作为普通用户,您没有访问级别来修改它们。您可以禁用它,但这是一个坏主意,因为您可以更轻松地搞砸一些事情,或者为潜在的恶意应用程序敞开大门,从而对您的系统造成严重破坏。
    • 哦,呃,我应该更好地检查他们的文档。我试过这个,它似乎奏效了,尽管我仍然必须使用sudo。我在没有sudo 的情况下尝试过一次,但没有成功。非常感谢!
    【解决方案2】:

    首先,您必须将节点安装在您的机器上,然后再安装 npm 检查他们是否已在您的终端上安装使用 node -v npm -v 然后只需使用npm i -g @ angular/cli typescript 安装打字稿和角度 CLI

    之后检查是否一切正常使用ng

    检查您的用户是否有权写入文件夹,如果不能,您可以在本地安装 angular cli,而不是安装 global

    【讨论】:

    • @guaracy-a-lima 感谢您提供的信息,但我仍然收到错误消息。请参阅我安装的 node 和 npm 版本的原始问题。
    【解决方案3】:

    ||||更新了答案||||

    执行sudo npm install --global --unsafe-perm 并发布 输出。

    ^^^^ 更新了答案^^^^

    常见做法:

    1. 执行带有前缀sudosudo npm install -g @angular/cli)的npm命令

    它的作用是以 root 身份安装软件包,并且 root 可以访问所有内容。

    1. 输入root 帐户。 (由于潜在的操作系统破坏问题,强烈不推荐)

    您必须以 root 身份执行每个命令。

    直接从 root 帐户执行某些操作是非常糟糕的做法,通常是不必要的。最好使用sudo,但仅在真正需要的情况下使用。

    希望有所帮助。

    【讨论】:

    • 感谢您的建议,这也没有奏效。它仍然说存在权限问题,即使是从 root
    • 你能发布终端输出吗?我刚刚安装了包它是成功的。
    • 如果你收到npm WARN 没问题,包就可以了。
    • 我的终端输出是:/usr/bin/ng -> /usr/lib/node_modules/@angular/cli/bin/ng > @angular/cli@6.0.8 postinstall /usr/lib/node_modules/@angular/cli > node ./bin/ng-update-message.js npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/@angular/cli/node_modules/fsevents): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) + @angular/cli@6.0.8 added 247 packages from 189 contributors in 17.667s
    • 我刚刚在原始帖子中链接的第二张图片中添加了输出。 **输出太长,无法在评论中粘贴。
    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 2017-03-23
    • 2019-10-24
    • 1970-01-01
    • 2017-06-27
    • 2019-10-17
    相关资源
    最近更新 更多