从Angular 15升级到Angular 16后,出现编译错误

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

从 Angular 15 升级到 Angular 16 后,应用程序无法运行,控制台出现问题,

Error: Unexpected value 'JpTimeMaskModule' imported by the module 'CommonComponentModule'. Please add an @NgModule annotation.
,我该如何解决此问题?

screenshot of the module imports

angular angular-cli angular16
3个回答
4
投票

您可以在发行说明中阅读“重大更改”部分:

Angular 兼容性编译器 (ngcc) 已被删除,因此 Angular 视图引擎库将不再工作。

这意味着不发布 Ivy 发行版的库将不再适用于 Angular 16。您使用的包是非常旧的 Angular 版本,如您在 GitHub 上看到的。该版本的 Angular (v8) 使用视图引擎,该引擎自 v12 起已弃用。该软件包需要更新到较新的 Angular 版本,您无能为力。


0
投票

如果可能,请分享导入该模块的代码以及

JpTimeMaskModule
文件中的代码。另请检查
JpTimeMaskModule
是否为模块或组件。如果它是组件,您需要将其从
imports
移动到
declarations

通过快速搜索,我找到了以下建议给您:

请确保

JpTimeMaskModule
模块已使用 @NgModule 装饰器正确注释。您可以执行以下操作:

打开定义了

JpTimeMaskModule
模块的文件

验证 @NgModule 装饰器是否存在于模块类定义之前。它应该看起来像这样:

import { NgModule } from '@angular/core';
// Other import statements...

@NgModule({
  // Module metadata
  // ...
})
export class JpTimeMaskModule {
  // Module class definition
  // ...
}

0
投票

我对 ngx-scrollreveal 和 ngx-wow 也有同样的问题,这两个库在更新到 Angular 16 时都停止工作,似乎 Angular 16 已弃用 ViewEngine 向后兼容性。但在 Angular 15 及更低版本中仍然存在这种向后兼容性。

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