@angular-cli 安装失败,请求被弃用@2.88.2:请求已被弃用(mac)

Posted

技术标签:

【中文标题】@angular-cli 安装失败,请求被弃用@2.88.2:请求已被弃用(mac)【英文标题】:@angular-cli install fails with deprecated request@2.88.2: request has been deprecated (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。任何帮助都会非常受欢迎,因为我有一个大项目即将到来。 谢谢大家。

【问题讨论】:

【参考方案1】:

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

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

Mac/Linux:https://github.com/nvm-sh/nvm Windows:https://github.com/coreybutler/nvm-windows

安装完 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;只需按照以下步骤操作

    从系统中删除节点 安装NVM 通过 NVM 安装节点:nvm install stable 运行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 中的问题

【讨论】:

以上是关于@angular-cli 安装失败,请求被弃用@2.88.2:请求已被弃用(mac)的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3 模式已被弃用

bodyParser在node中被弃用解决办法

为什么Eclipse中的FreeMarker IDE氧气JBoss工具4.5.2.Final已被弃用?

弃用警告:executable_path 已被弃用 selenium python

为啥 InstanceMethods 模块已被弃用?

在 Angular 6 中未找到配置或 get/set 已被弃用