📜  ngcc 角度 9 失败 - Javascript (1)

📅  最后修改于: 2023-12-03 15:33:06.761000             🧑  作者: Mango

ngcc 角度 9 失败 - Javascript

当使用 Angular 9 来开发应用程序时,你可能会遇到 ngcc 失败的问题。 ngcc 是一个 Angular Package Compatibility Compiler,它是一个命令行工具,用于将 Angular 应用程序和依赖库中的旧的 View Engine 编译成新的 Ivy Renderer。这个问题可能是由于几个不同的因素引起的,包括版本兼容性问题和环境配置问题。在这篇文章中,我们将探讨如何诊断和解决这个问题。

诊断问题

当你在 Angular 9 中运行 ng buildng serve 命令时,如果 ngcc 失败,你可能会遇到以下错误消息之一:

An unhandled exception occurred: Cannot read property 'split' of null
An unhandled exception occurred: Cannot read property 'length' of undefined

这些错误都指向 ngcc 命令的一个内部错误。这意味着在执行 ngcc 时发生了错误,导致它无法完成。要诊断这个问题,你可以使用 Angular CLI 的 --verbose 选项来获取更详细的信息。例如,你可以运行以下命令:

ng build --verbose

这将打印出 ngcc 命令的更详细的输出。在输出中,你可能会看到类似以下的信息:

Using package manager: 'npm'
Collecting Angular metadata and transforming with ngcc
Analyze modules
Using package manager: 'npm'

如果你在 Collecting Angular metadata and transforming with ngcc 行上看到任何错误消息,请仔细检查该行下面的信息,以查找可能的问题。

解决问题

一旦你确定了 ngcc 失败的问题,就可以开始解决它了。以下是几个可能的解决方案:

1. 更新依赖库

在 Angular 9 中,你需要使用新版的依赖库来支持新的 Ivy Renderer。如果你的依赖库版本太旧,就可能会导致 ngcc 失败。尝试更新你的依赖库,然后重新运行 ng buildng serve 命令。

2. 配置环境变量

在某些情况下,你可能需要在运行 ng buildng serve 命令之前配置你的环境变量。例如,如果你使用的是 Windows 操作系统,你需要在命令行中设置 NG_COMPILER_HOST 环境变量。要设置环境变量,请运行以下命令:

set NG_COMPILER_HOST=local
3. 卸载并重新安装 Angular CLI

如果你仍然无法解决 ngcc 失败的问题,你可以尝试重新安装 Angular CLI。要卸载 Angular CLI,请运行以下命令:

npm uninstall -g @angular/cli

然后,重新安装 Angular CLI:

npm install -g @angular/cli
4. 启用调试模式

如果你仍然无法解决问题,你可以尝试启用调试模式。这将生成更详细的日志,以帮助你诊断问题。要启用调试模式,请运行以下命令:

ng build --verbose --debug

在调试模式下运行 ng buildng serve 命令后,你将看到更详细的日志输出。你可以使用这些日志来诊断问题,并找到解决方案。

总结

ngcc 失败是 Angular 9 开发中常见的问题之一。在这篇文章中,我们讨论了如何诊断和解决这个问题。如果你遇到了 ngcc 失败的问题,我们建议你首先尝试更新你的依赖库,并配置你的环境变量。如果这些解决方案不起作用,你可以尝试卸载并重新安装 Angular CLI,或者启用调试模式以获取更详细的日志输出。