问题描述
我正在按照Angular Froala WYSIWYG Editor上的说明进行操作,并且使用的是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.
我该如何解决?
解决方法
编辑者的BUG #441中有一个开放的Github repository,但这确实是一个问题。关于此问题的评论之一是指Open Pull request中的修复程序,并建议使用pull请求中的构建,而不是使用标准npm软件包。
因此,您有2个选择。 升级到Angular 9 或使用来自拉取请求的构建,我都证明可以正常工作!
要使用从请求中获取的构建,请执行以下步骤:
- 卸载编辑器
npm uninstall angular-froala-wysiwyg --save
- 从PR
npm i leo6104/angular-froala-wysiwyg#feat/ng-packagr-builds --save
安装软件包构建 - 添加依赖项:
npm i froala-editor@3.0.5 --save
npm i jasmine-core@>=3.5 --save
- 运行您的应用
ng serve
Ivy
编译似乎是一个问题,如果将其关闭,一切都将正常工作。
tsconfig.app.json
{
"angularCompilerOptions": {
"enableIvy": false
}
}
我建议您仔细阅读以下文档,以获取有关错误和Ivy实现的更多信息:
does not have 'ngModuleDef' property
我也是这个错误的新手,希望您能找到一些帮助,并希望此链接对您有所帮助。
,在这种情况下,我们希望OP重现该问题。没关系,因此我在Stackblitz上列出了angular froala wysiwyg的3种最小复制。请注意它们的模式和依赖版本,它们可能会解决您的问题:
- Stackblitz用于Angular
^8.0.0
,带有 tsconfig.json 文件, 多个域 - Stackblitz for Angular
^8.0.0
无 tsconfig.json 文件,单个域 - Stackblitz for Angular
^10.0.0
无 tsconfig.json 文件,单个域