Я создаю своего рода редактор статей, для этого я использую Angular Интеграция для CKEditor5; Следуя документации, я могу правильно использовать сборку ClassicEditor
с компонентом ckeditor
.
Это мои файлы:
import { Component, OnInit } from '@angular/core';
import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';
@Component({
selector: 'app-edit-article',
templateUrl: './edit-article.component.html',
styleUrls: ['./edit-article.component.scss']
})
export class EditArticleComponent implements OnInit {
constructor() { }
public Editor = ClassicEditor;
articleForm: FormGroup;
ngOnInit() {
}
}
Шаблон
<div class="row">
<div class="col-12">
<label for="">Content</label>
<ckeditor [editor]="Editor" id="editor" class="blue-scroll--light" formControlName="content"></ckeditor>
</div>
</div>
К сожалению сборка ClassicEditor
, упомянутая в этом руководстве, не включает в себя множество плагинов, поэтому я пытаюсь добавить некоторые из них, например выравнивание текста, цвет шрифта, размер шрифта и т. д. c.
Кажется, что мне нужно создать пользовательскую сборку , которая включает в себя все нужные функции, а затем ссылаться на эту сборку вместо ClassicEditor
в моем файле машинописи, если я правильно понимаю, поэтому я продолжил и использовал их онлайн-строитель для создания сборки со всеми уже включенными плагинами, но после этого я не уверен, что делать дальше, и документация не совсем понятна.
Насколько я понимаю, я необходимо добавить папку build
в мое приложение Angular, а затем импортировать файл ckeditor.js
в мой компонент, например так:
import * as Editor from '../../../../../core/libs/ckeditor5/build/ckeditor';
и изменить объявление редактора для использования этого импорта вместо из ClassicEditor
, поэтому:
public Editor = Editor;
Однако, как только я внесу это изменение, я больше не смогу даже запустить приложение, так как получаю следующую ошибку:
ERROR Error: Uncaught (in promise): CKEditorError: ckeditor-duplicated-modules: Some CKEditor 5 modules are duplicated. Read more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-ckeditor-duplicated-modules
CKEditorError: ckeditor-duplicated-modules: Some CKEditor 5 modules are duplicated. Read more: https://ckeditor.com/docs/ckeditor5/latest/framework/guides/support/error-codes.html#error-ckeditor-duplicated-modules
at Object.<anonymous> (ckeditor.js:5)
at Object.push../src/app/core/libs/ckeditor5/build/ckeditor.js (ckeditor.js:5)
at i (ckeditor.js:5)
at Module.<anonymous> (ckeditor.js:5)
at i (ckeditor.js:5)
at push../src/app/core/libs/ckeditor5/build/ckeditor.js (ckeditor.js:5)
at ckeditor.js:5
at ckeditor.js:5
at Object../src/app/core/libs/ckeditor5/build/ckeditor.js (ckeditor.js:5)
at __webpack_require__ (bootstrap:84)
at resolvePromise (zone.js:852)
at resolvePromise (zone.js:809)
at zone.js:913
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Object.onInvokeTask (core.js:30885)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:422)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:195)
at drainMicroTaskQueue (zone.js:601)
Опять же, в документах говорится, что это связано с выполнением нескольких импортов, но я не понимаю, как, поскольку я использую только файл ckeditor.js
, который входит в только что созданную сборку, которая прекрасно работает, если на нее ссылаются в виде простого кода. HTML file.
Может ли кто-нибудь привести пример успешной работы Custom Build в приложении Angular?