How to fix Error: Type FroalaEditorModule does not have 'ngModuleDef' property Using Froala Wysiwyg

How to fix Error: Type FroalaEditorModule does not have 'ngModuleDef' property Using Froala Wysiwyg

我正在按照 Angular Froala WYSIWYG Editor 中的说明进行操作,并且我使用的是 angular 版本 8.3.26。

app.nodule...

import { FroalaViewModule, FroalaEditorModule } from 'angular-froala-wysiwyg'

imports: [  
    ...
    FroalaViewModule.forRoot(), FroalaEditorModule.forRoot()
], 

我在 运行 应用程序时遇到错误:

Error: Type FroalaEditorModule does not have 'ngModuleDef' property.

我该如何解决?

似乎是 Ivy 编译的问题,如果您将其关闭,一切都会正常。

tsconfig.app.json

{
"angularCompilerOptions": {
    "enableIvy": false
  }
}

我建议您阅读以下文档以了解有关错误和 Ivy 实现的更多信息:

Angular Ivy

does not have 'ngModuleDef' property

我也是这个错误的新手,希望你能找到一些帮助,希望这个链接能帮助你。

有一个开放 BUG #441 in editor's Github repository which does say this is an issue. One of the comment on the issue refers to a fix in Open Pull request 并建议使用拉取请求中的构建而不是使用标准 npm 包。

所以你有两个选择。 升级到 Angular 9 使用拉取请求中的构建 我验证工作正常!

要使用拉取请求构建,请按照以下步骤操作:

  1. 卸载编辑器npm uninstall angular-froala-wysiwyg --save
  2. 从 PR 安装包构建 npm i leo6104/angular-froala-wysiwyg#feat/ng-packagr-builds --save
  3. 添加依赖项:
npm i froala-editor@3.0.5 --save 
npm i jasmine-core@>=3.5 --save
  1. 运行 你的应用 ng serve

在这种情况下,我们希望 OP 重现问题。没关系,所以我在 Stackblitz 上列出了 angular froala wysiwyg 的 3 个最小复制。请注意他们的 patternsdependency versions 这可能会解决你的问题:

  • Stackblitz 对于 Angular ^8.0.0 tsconfig.json 文件, 多个
  • Stackblitz for Angular ^8.0.0 without tsconfig.json 文件,单一
  • Stackblitz for Angular ^10.0.0 without tsconfig.json 文件,单一