【问题标题】:@angular-cli install fails with deprecated request@2.88.2: request has been deprecated (mac)@angular-cli 安装失败,请求被弃用@2.88.2:请求已被弃用(mac)
【发布时间】:2020-05-30 18:29:06
【问题描述】:

将 node.js 和 npm 更新到当前 LTS 后:

node -v
v12.16.0
npm -v
6.13.4

当我尝试按照the documentation 中的步骤安装@angular-cli 时,运行npm install -g @angular/cli 在终端停止安装,控制台输出为:

npm install -g @angular/cli
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
/Users/user/.npm-global/bin/ng -> /USERS/USER/.npm-global/lib/node_modules/@angular/cli/bin/ng

> @angular/cli@9.0.2 postinstall /USERS/USER/.npm-global/lib/node_modules/@angular/cli
> node ./bin/postinstall/script.js

+ @angular/cli@9.0.2
updated 1 package in 12.202s

在这种情况下,ng new project-name 产生-bash: ng: command not found。任何帮助都会非常受欢迎,因为我有一个大项目即将到来。 谢谢大家。

【问题讨论】:

    标签: node.js angular npm angular-cli npm-install


    【解决方案1】:

    您遇到的问题与您在控制台ref 中看到的npm warning 无关。似乎更有可能是您的机器上的权限问题或 NodeJS 安装问题或两者兼而有之。

    我建议首先完全删除您的 NodeJS 安装,然后安装 NVM 来管理您的 NodeJS 实例:

    安装完 NVM 后,尝试安装 Angular CLI:

    npm install @angular/cli -g
    

    希望对你有帮助!

    更新:您也可以查看issue

    【讨论】:

    • 您好,感谢您的精彩回复! Unfotunatley 这不起作用,因为在运行 ng new 终端时仍会打印出 -bash: ng: command not found 。这很奇怪,因为我已经卸载并重新安装了 node.js 和 angular-cli。也许这是计算机上的权限问题?
    • @BenMordechai 你现在在使用 NVM 吗?
    • 是的,我已经安装了 nvm 并检查了它的安装
    • @BenMordechai 你在安装 NVM 之前删除了 nodejs 安装吗?另请查看此问题github.com/angular/angular-cli/issues/503
    【解决方案2】:

    很遗憾,请求包已弃用。 根据 Mikeal Rogers(请求的创建者)的说法,请阅读此 link

    更多信息,你可以阅读这个article

    【讨论】:

      【解决方案3】:

      我删除了“node_modules”文件夹和“package-lock.json”文件,然后执行以下两个命令:

      npm init
      
      npm install
      

      然后,它工作正常。

      【讨论】:

        【解决方案4】:

        我尝试清理缓存,它对我有用。

        npm cache clean --force
        

        【讨论】:

          【解决方案5】:

          现在完全弃用包请求。所以这可能需要一段时间才能改变。我认为解决方案是让 Angular cli 发布不依赖于请求的新版本。

          【讨论】:

          • 请求仍然得到维护并且工作正常。此问题与已弃用的请求无关
          【解决方案6】:

          卸载和安装angular cli 对我来说很好。

          【讨论】:

            【解决方案7】:

            $brew 安装 angular-cli

            安装了angular9.0.3(稳定) 这取决于node13.08.0

            https://formulae.brew.sh/formula/angular-cli

            【讨论】:

              【解决方案8】:

              我在 Angular 9 项目中遇到了同样的问题,我只是从旧的 Angular 项目中复制粘贴的 node_modules 文件夹,我工作正常,如果没有成功,请尝试这种方式。但是如果你执行 npm install 也会遇到同样的问题,请不要这样做。

              【讨论】:

                【解决方案9】:

                documentation 中所述,使用 Windows 10 机器,在带有 NodeJS 和 npm 包管理器的机器上安装 Angular CLI

                node -v
                # v12.16.0
                
                npm -v
                # 6.13.4
                

                第一次运行

                npm install -g @angular/cli
                

                收到了与你类似的消息

                npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
                
                C:\Users\tiago\AppData\Roaming\npm\ng -> C:\Users\tiago\AppData\Roaming\npm\node_modules\@angular\cli\bin\ng
                
                > @angular/cli@10.0.0 postinstall C:\Users\tiago\AppData\Roaming\npm\node_modules\@angular\cli
                > node ./bin/postinstall/script.js
                
                + @angular/cli@10.0.0
                added 269 packages from 206 contributors in 97.901s
                

                然后,当第二次运行时,该消息与您的匹配(注意最后一行现在不是added 269 packages;而是updated 1 package)。

                npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
                C:\Users\tiago\AppData\Roaming\npm\ng -> C:\Users\tiago\AppData\Roaming\npm\node_modules\@angular\cli\bin\ng
                
                > @angular/cli@10.0.0 postinstall C:\Users\tiago\AppData\Roaming\npm\node_modules\@angular\cli
                > node ./bin/postinstall/script.js
                
                + @angular/cli@10.0.0
                updated 1 package in 8.691s
                

                如果我然后输入

                ng --version
                

                我没有遇到像你这样的错误。反而得到了如下结果

                     _                      _                 ____ _     ___
                    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
                   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
                  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
                 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                                |___/
                
                
                Angular CLI: 10.0.0
                Node: 12.16.0
                OS: win32 x64
                
                Angular:
                ...
                Ivy Workspace:
                
                Package                      Version
                ------------------------------------------------------
                @angular-devkit/architect    0.1000.0
                @angular-devkit/core         10.0.0
                @angular-devkit/schematics   10.0.0
                @schematics/angular          10.0.0
                @schematics/update           0.1000.0
                rxjs                         6.5.5
                

                这表明它实际上并没有失败,而是安装了 Angular CLI。

                事实上,当我运行时(用 cd 到 C:/Users/tiago/Desktop/angular)

                ng new my-app
                

                我的应用程序已创建

                并且可以提供(使用 cd 到 my-app)

                ng serve --open 
                

                我可以看到以下页面,这意味着安装和设置成功。


                因此,根据您使用-bash: ng: command not found 的情况,这可能意味着NodeJS 没有正确安装(我会reinstall it)。如果那还不能解决,我以前见过另一个solution to that problem;只需按照以下步骤操作

                1. 从系统中删除节点
                2. 安装NVM
                3. 通过 NVM 安装节点:nvm install stable
                4. 运行npm install -g @angular/cli

                【讨论】:

                  【解决方案10】:
                  npm 缓存清理 --force

                  npm install -g @angular/cli

                  npm install mkdirp

                  npm 缓存验证

                  关闭终端并再次打开

                  ng new newApp

                  它可以解决这个问题......

                  快乐编码

                  【讨论】:

                    【解决方案11】:

                    如果您在 Windows 机器上遇到问题。

                    只需在命令中提及 cli 版本即可。

                    npm i @angular/cli@8.1.0
                    

                    这对我有用。

                    此外,如果遇到以下问题,您可能需要设置路径变量

                    'ng' is not recognized as an internal or external command, operable program or batch file
                    

                    【讨论】:

                      【解决方案12】:

                      试试,

                      sudo npm install -g @angular/cli
                      

                      这解决了我在 mac 中的问题

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2016-05-13
                        • 1970-01-01
                        • 1970-01-01
                        • 2012-11-13
                        • 2021-11-09
                        • 1970-01-01
                        • 1970-01-01
                        • 2020-12-14
                        相关资源
                        最近更新 更多