使用Webpack在Laravel 5中将插件安装到CKEditor 5

Ken*_*nny 5 javascript ckeditor laravel webpack

安装与集成到Laravel 5.6的CKEditor插件时,我遇到了一个小问题。根据CKEditor文档的集成指南,我能够@ckeditor/ckeditor5-build-classic使用npm 将依赖项添加到项目中,并且它与webpack配合得很好。

但是问题是我无法添加默认情况下不包含在CKEditor中的自定义插件。我正在遵循添加自定义插件的指南,但是在laravel本身中,它与webpack的配合效果并不理想。例如,我尝试添加@ckeditor/ckeditor5-alignment,但不起作用,并且出现以下控制台错误。

TypeError: Cannot read property 'getAttribute' of null
Run Code Online (Sandbox Code Playgroud)

我猜这可能是我在设置ClassicEditor实例时未添加所有必要插件的原因。所以我尝试了另一件事。我已经将插件安装到ckeditor构建中,并且得到了自定义构建。但是,当我尝试使用以下语句在自定义路径中导入构建时,它没有导入。

import ClassicEditor from '../plugins/vendor/ckeditor/build/ckeditor';
Run Code Online (Sandbox Code Playgroud)

如果我只是从node_modules中删除构建目录并复制此自定义构建,则可以使其与以下语句一起使用。

import ClassicEditor from '@ckeditor/ckeditor5-build-classic/build/ckeditor';
Run Code Online (Sandbox Code Playgroud)

这不是在node_modules中进行编辑/更新的专业方法。

所以我的问题是:

如何在Laravel自身上将自定义插件安装到CKEditor?

或者如何在不自定义node_modules的情况下将自定义CKEditor构建添加到项目中?

小智 1

我在 Laravel 项目中使用过 CKEditor 等,但我的做法如下:

  1. 我从 CKEditor 网站下载了 js 和 CSS 文件并解压文件
  2. 我将这些文件复制到 Laravel 项目的 public 文件夹中
  3. 您可以像这样在刀片页面中访问和使用它们
<code>
   <script src="{{asset('js/ckeditor.js')}}"></script>
   <link rel="stylesheet: href="{{asset('js/ckeditor.js')}}" />
</code>
Run Code Online (Sandbox Code Playgroud)