Angular `更新@angular/...` returns `401 未经授权`
Angular `ng update @angular/...` returns `401 Unauthorized`
npm -v
returns 6.0.0
node -v
returns v10.0.0
Angular CLI 本地和全球版本为 6.0.0
我用 ng new sample
、运行 npm install
创建了一个没有问题的新包,然后我尝试 ng update @angular/core
或 ng update @angular/cli
并得到 401 Unauthorized
作为回应。
尝试 运行 更新已经 Angular 6 的存储库似乎是多余的,但我也遇到了 Angular 5 存储库的这个问题。
对于这个错误,我没有太多可以继续的,它是专门与 ng update
相关的,还是更可能是它之外的一些不相关的配置?
碰巧,您尝试更新时 运行 是应用程序吗?
我遇到了同样的问题,并且在停止应用程序进程并在全局安装最新的 cli 后能够从 5.29 更新到 6.0.0。
我一直在为同样的错误信息而苦苦挣扎。对我来说,这是由项目目录中的自定义 .npmrc
引起的,其中包含有关如何连接到我们的 npm 注册表的信息。
我是这样解决的:
- 在更新过程中删除了文件 (
mv .npmrc backup.npmrc
)
- 从
package.json
的内部 npm 注册表中删除了对工件的所有依赖项
- 运行
ng update @angular/cli
- 将文件移回原来的位置
mv backup.npmrc .npmrc
- 运行
npm install
(只是为了确定)
创建了一个 angular-cli 问题
我遇到了同样的问题。这是我解决它的方法。
npm i -g @angular/cli@latest
ng update
ng update --all
如已接受的答案中所示,此问题来自于在您的配置中某处定义了自定义注册表。通过 .rc 文件,如 .yarnrc
或 .npmrc
或直接使用 npm config set registry <url>
或 yarn config set <name>:registry <url>
设置。您无需撤消这些注册表配置即可解决此问题! ng update
命令将注册表 url 作为参数。但是,您必须删除对依赖于您的自定义注册表的包的任何引用。别担心命令会告诉你有问题的包是什么,只是 运行 像这样的命令:
纱线:
ng update @angular/cli @angular/core --registry https://registry.yarnpkg.com
对于 npm:
ng update @angular/cli @angular/core --registry https://registry.npmjs.org
应该会导致如下错误:
Not found : @fortawesome/fontawesome-pro
然后您可以暂时从 package.json 中的依赖项中删除有问题的包,然后重试。
在尝试其他任何事情之前,请转到 Artifactory UI 主页 并在 Set Me Up 小部件中滚动到 npm repo you在 .npmrc 中提供 registry。单击它,然后在弹出窗口中输入您的密码以生成配置并复制并粘贴 auth、username、email 和 注册表 。 Auth 与您预期的不同(它不是用户配置文件中的 API 密钥,也不是某些来源建议的加密密码)。这给我带来了很多问题,直到我找到在 Artifactory UI 中生成配置的方法。
顺便说一句:
- 我不必将任何范围内的回购设置为 运行 ng update 命令
- npm auth config 自 Angular 7 开始工作 - angular/devkit https://github.com/angular/devkit/pull/982/commits/123f13cf99413f8424d30ee777600be4f30f5695
中的此特定提交
npm -v
returns 6.0.0
node -v
returns v10.0.0
Angular CLI 本地和全球版本为 6.0.0
我用 ng new sample
、运行 npm install
创建了一个没有问题的新包,然后我尝试 ng update @angular/core
或 ng update @angular/cli
并得到 401 Unauthorized
作为回应。
尝试 运行 更新已经 Angular 6 的存储库似乎是多余的,但我也遇到了 Angular 5 存储库的这个问题。
对于这个错误,我没有太多可以继续的,它是专门与 ng update
相关的,还是更可能是它之外的一些不相关的配置?
碰巧,您尝试更新时 运行 是应用程序吗? 我遇到了同样的问题,并且在停止应用程序进程并在全局安装最新的 cli 后能够从 5.29 更新到 6.0.0。
我一直在为同样的错误信息而苦苦挣扎。对我来说,这是由项目目录中的自定义 .npmrc
引起的,其中包含有关如何连接到我们的 npm 注册表的信息。
我是这样解决的:
- 在更新过程中删除了文件 (
mv .npmrc backup.npmrc
) - 从
package.json
的内部 npm 注册表中删除了对工件的所有依赖项
- 运行
ng update @angular/cli
- 将文件移回原来的位置
mv backup.npmrc .npmrc
- 运行
npm install
(只是为了确定)
我遇到了同样的问题。这是我解决它的方法。
npm i -g @angular/cli@latest
ng update
ng update --all
如已接受的答案中所示,此问题来自于在您的配置中某处定义了自定义注册表。通过 .rc 文件,如 .yarnrc
或 .npmrc
或直接使用 npm config set registry <url>
或 yarn config set <name>:registry <url>
设置。您无需撤消这些注册表配置即可解决此问题! ng update
命令将注册表 url 作为参数。但是,您必须删除对依赖于您的自定义注册表的包的任何引用。别担心命令会告诉你有问题的包是什么,只是 运行 像这样的命令:
纱线:
ng update @angular/cli @angular/core --registry https://registry.yarnpkg.com
对于 npm:
ng update @angular/cli @angular/core --registry https://registry.npmjs.org
应该会导致如下错误:
Not found : @fortawesome/fontawesome-pro
然后您可以暂时从 package.json 中的依赖项中删除有问题的包,然后重试。
在尝试其他任何事情之前,请转到 Artifactory UI 主页 并在 Set Me Up 小部件中滚动到 npm repo you在 .npmrc 中提供 registry。单击它,然后在弹出窗口中输入您的密码以生成配置并复制并粘贴 auth、username、email 和 注册表 。 Auth 与您预期的不同(它不是用户配置文件中的 API 密钥,也不是某些来源建议的加密密码)。这给我带来了很多问题,直到我找到在 Artifactory UI 中生成配置的方法。 顺便说一句:
- 我不必将任何范围内的回购设置为 运行 ng update 命令
- npm auth config 自 Angular 7 开始工作 - angular/devkit https://github.com/angular/devkit/pull/982/commits/123f13cf99413f8424d30ee777600be4f30f5695 中的此特定提交