【问题标题】:How to install CKEditor using NPM on Laravel 8 Jetstream如何在 Laravel 8 Jetstream 上使用 NPM 安装 CKEditor
【发布时间】:2021-10-24 05:11:16
【问题描述】:

我正在努力让 CKEditor 5 在 Laravel 8 Jetstream 中工作。

我已经使用 npm 安装了它(以后我不想 CDN 用于生产模式)。

我是如何安装的

我在我的 Laravel 项目的根文件夹中执行了以下 npm 命令:

npm install @ckeditor/ckeditor5-build-classic --save-dev

然后,在我添加的app.js 文件中:

/** CKEditor 5*/
import ClassicEditor from '@ckeditor/ckeditor5-build-classic/build/ckeditor';
window.ClassicEditor = ClassicEditor;

然后,在我需要它的视图中,如下所示:

{{--Content--}}
<div>
    <x-jet-label value="Content" />
    <textarea wire:model="post.content" rows="6" class="form-control w-full" id="editor"></textarea>
</div>

...

@push('js')
    <script>
        ClassicEditor
            .create( document.querySelector( '#editor' ) )
            .catch( error => {
                console.error( 'CKEditor error: '+error );
            } );
    </script>
@endpush

我跑了 npm run dev:

npm run dev

之后我看到以下消息:

webpack compiled successfully

它不起作用

但是,当我访问页面并查看检查元素时(因为我看到 CKEditor 未加载),我收到以下日志错误:

Uncaught ReferenceError: ClassicEditor is not defined

我还尝试了什么

奇怪的是,如果我这样调用 CDN:

@push('js')
    <script src="https://cdn.ckeditor.com/ckeditor5/29.1.0/classic/ckeditor.js"></script>

    <script>
        ClassicEditor
            .create( document.querySelector( '#editor' ) )
            .catch( error => {
                console.error( 'CKEditor error: '+error );
            } );
    </script>
@endpush

现在我得到一个不同的错误,调用它两次!:

未捕获的 CKEditorError: ckeditor-duplicated-modules

什么有效

如果我只使用 CDN,它确实有效。但是,从 NPM 方法来看,它没有。如果我只离开 NPM,它会说它是未定义的。如果我添加 CDN,它说它是重复的!

唯一可行的方法是仅通过删除 CDN 来使用

/** CKEditor 5*/
import ClassicEditor from '@ckeditor/ckeditor5-build-classic/build/ckeditor';
window.ClassicEditor = ClassicEditor;

部分,来自app.js 文件和npm run dev 再次。

我的问题

我错过了什么?如何使其与 NPM 安装一起使用?

【问题讨论】:

  • 你试过import { ClassicEditor } from '@ckeditor/ckeditor5-build-classic/build/ckeditor';吗?
  • 嗨,好吧,我试过了,但仍然收到Uncaught ReferenceError: ClassicEditor is not defined 错误。否则,我是否错过了 app.blade.php 布局中的一些设置以将其传递给我的其余视图?

标签: laravel npm ckeditor ckeditor5


【解决方案1】:

在 bootsrap.js 中试试这个...

window.ClassicEditor = require('@ckeditor/ckeditor5-build-classic/build/ckeditor');

然后运行...

npm run dev

【讨论】:

    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 2021-07-12
    • 2021-09-14
    • 2021-02-17
    • 2021-04-04
    • 2021-03-05
    相关资源
    最近更新 更多