Laravel CKEditor5-未定义ClassicEditor

问题描述 投票:0回答:2

由于与unisharp/laravel-ckeditor和Laravel 6的依赖项不兼容,我试图在Laravel应用中替换旧版本的CKEditor。我发现CKEditor 5页面包含NPM安装说明,但未能获得它工作。这是我的代码:

resources/main.js

require('@ckeditor/ckeditor5-build-classic');

$(document).ready(function(){
  ClassicEditor.create($('#edit_about_text').get()[0]);
});

webpack.mix.js

mix.js('resources/assets/js/main.js', 'public/js');

layouts/master.blade.php

<!doctype html>
<html>
  <head></head>
<body>
  <script src="{{ asset('js/main.js') }}"></script>
</body>
</html>

包含[jQuery(以某种方式;对webpack有点不熟悉),但是运行扩展了@extends('layouts.master')的页面会导致以下结果:

未捕获的ReferenceError:未定义ClassicEditor

如果我从require()中删除main.js语句并仅使用CDN链接,那么一切都会按预期进行:

<script src="https://cdn.ckeditor.com/ckeditor5/16.0.0/classic/ckeditor.js"></script>
<script src="{{ asset('js/main.js') }}"></script>

我做错了事,但我茫然不知所措...有人见过这个问题吗?

php laravel webpack laravel-6 ckeditor5
2个回答
0
投票
非常简单的解决方案,文档无法引用,但是您需要将require()的值分配给ClassicEditor

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

这样做可以正确引用代码。

0
投票
关于Laravel在boostrap.js文件中包含的库示例,例如pusheraxios等...>

您可以使用

window.ClassicEditor = require('@ckeditor/ckeditor5-build-classic'); $(document).ready(function(){ ClassicEditor.create($('#edit_about_text').get()[0]); });

© www.soinside.com 2019 - 2024. All rights reserved.