尝试将 Angular 从 5.2 更新到 6.0 时出现“错误:JSON 输入意外结束”

问题描述 投票:0回答:3

我正在尝试将一个很久没有更新的旧 Angular 项目从 Angular 5.2 更新到 13.0。我正在遵循 Angular 指南 (https://update.angular.io/?l=2&v=5.0-13.0),但当我尝试按照推荐的命令从 5.2 升级到 6.0 时,出现

Unexpected end of JSON input
错误:

命令:

cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@6 update @angular/cli@6 @angular/core@6"

错误信息:

Error: Unexpected end of JSON input
Unexpected end of JSON input

当我执行

ng update
时,我也遇到了与上面相同的错误,但没有指示哪个文件导致了此错误。

我使用的完整错误消息和命令可以在这里看到(注意还有一个全局与本地版本警告,但我似乎无法找到较新的全局版本的位置,或者是否与此错误相关: Picture of error message

应用程序运行良好,所以我不确定哪里可能存在损坏的 JSON 文件,并且错误没有表明它正在努力解释什么 JSON,任何帮助将不胜感激。

版本:

ng --version
的输出是:

Angular CLI: 1.7.4
Node: 8.9.0
OS: win32 x64
Angular: 5.2.9
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.7.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.5.3
webpack: 3.11.0
angular angular5
3个回答
1
投票

首先,我手动删除了package-lock.json文件。然后:

  • npm 缓存清理 --force
  • npm 安装
  • cmd /C“设置“NG_DISABLE_VERSION_CHECK=1”&& npx @angular/cli@6更新 @角度/cli@6 @角度/核心@6"

另一个选择是将节点版本更改为低于 14.20.1 的版本。我使用以下方法切换到 14.15.4:

  • nvm 使用 14.15.4 (必须事先安装nvm和所需的节点版本)

另一个选项是检查 package.json 文件中是否正确指定了依赖项。

如果不起作用,请手动更改package.json文件中的依赖项,删除node_modules文件夹,然后运行:

  • npm 安装。

0
投票

我在从 Angular 5.2 升级到 6 时也遇到了同样的问题。这可能是由于您的节点全局版本所致。我的是node 18.10.0,我完全卸载了node并安装了较低版本14.17.6,升级成功了!.


0
投票

对我来说,降级节点并没有解决这个问题,但确保我的本地和全局 Angular CLI 版本相同似乎确实解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.