错误:找不到模块'@ckeditor/ckeditor5-build-classic'角度9的声明文件

Posted

技术标签:

【中文标题】错误:找不到模块\'@ckeditor/ckeditor5-build-classic\'角度9的声明文件【英文标题】:error: Could not find a declaration file for module '@ckeditor/ckeditor5-build-classic' angular 9错误:找不到模块'@ckeditor/ckeditor5-build-classic'角度9的声明文件 【发布时间】:2020-10-22 16:32:47 【问题描述】:

我想在 Angular 9 中使用 ckeditor,我按照https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html 中的说明进行操作 但它在我导入“@ckeditor/ckeditor5-build-classic”时显示错误:

Could not find a declaration file for module '@ckeditor/ckeditor5-build-classic'. 

'a:/repositories/BasimStore/source/Web/Frontend/node_modules/@ckeditor/ckeditor5-build-classic/build/ckeditor.js' implicitly has an 'any' type.
  Try `npm install @types/ckeditor__ckeditor5-build-classic` if it exists or add a new declaration (.d.ts) file containing `declare module '@ckeditor/ckeditor5-build-classic';`

我在 package.json 中有 "@ckeditor/ckeditor5-angular": "^1.2.3" 和 "@ckeditor/ckeditor5-build-classic": "^20.0.0" 但它仍然显示错误。 我在 ckeditor5-build-classic 文件夹中找不到 index.d.ts。我应该如何解决这个错误?

【问题讨论】:

【参考方案1】:

在您的项目根目录或任何文件夹中添加 typings.d.ts 文件

在输入文件中添加以下代码

declare module '@ckeditor/ckeditor5-build-classic' 
    const ClassicEditorBuild: any;

    export = ClassicEditorBuild;

Angular 会自动检测类型并将其编译为依赖项,这将解决它在官方 CKEDITOR 页面中也建议的问题:https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html

目录结构

【讨论】:

除了上述建议外,请执行以下步骤:将导入添加到发生该问题的组件中,例如 x.component.ts import * as ClassicEditorBuild from '@ckeditor/ ckeditor5-build-classic'; export class x implements OnInit public Editor = ClassicEditorBuild;constructor() ngOnInit(): void 最后,在 x.component.html 我将它添加到具有 '@ckeditor/ckeditor5-build-classic' 导入的模块中并且它起作用了 太棒了。我有同样的问题,你的建议奏效了。大起大落【参考方案2】:

我对 Angular 8 也有同样的问题 "@ckeditor/ckeditor5-angular": "^1.2.3", "@ckeditor/ckeditor5-build-classic": "^19.0.2",

编辑:我找到了这个解决方案:编辑你的 TypeScript 配置文件 (tsconfig.json) 并添加一个新的键值对

"noImplicitAny": false

【讨论】:

【参考方案3】:

如果有人仍然感兴趣,可以向 TS 提供社区支持。 您需要做的就是使用以下条目更新您的 package.json:

    "@types/ckeditor__ckeditor5-core": "^27.0.13",
    "@types/ckeditor__ckeditor5-basic-styles": "^27.0.1",
    "@types/ckeditor__ckeditor5-editor-classic": "^27.0.0",
    "@types/ckeditor__ckeditor5-essentials": "^27.0.4",
    "@types/ckeditor__ckeditor5-paragraph": "^27.0.0"
    

【讨论】:

【参考方案4】:

Typescript 找不到声明文件,并抱怨“any”的隐式/推断类型。

您可以按照@khaled 的说明禁用规则(“核”选项 - 该规则被全局禁用)。

更好的解决方法是在 typings.d.ts 文件中将 ClassicEditorBuild 的类型明确定义为“any”,如下所述:https://github.com/ckeditor/ckeditor5-angular/issues/70#issuecomment-513827165

在使用 Angular 11.0.5 和 Typescript 4.0.2 升级到 CKEditor5 时,这对我有用

【讨论】:

以上是关于错误:找不到模块'@ckeditor/ckeditor5-build-classic'角度9的声明文件的主要内容,如果未能解决你的问题,请参考以下文章

错误找不到模块'@angular/material

Phonegap 错误 + 错误:找不到模块 'q'

解析错误:找不到模块'next/babel'

找不到模块:错误:无法解析模块“fs”

TypeOrm 迁移 - 错误:找不到模块

删除了节点模块,现在出现“错误:找不到模块 'webpack/lib/RuleSet'”错误