我有一个CakePHP 2.3应用程序,多年来一直使用任何版本的CK Editor。
我正在开发模式下,希望将其升级到CKEditor 5。
我轻松快捷地摆脱了所有旧代码和文件,使ckeditor5在其最基本的版本中正常工作。
这是去吧!
但是,我确实需要表格。我现在正在设置表格功能,但是无法正常工作。
这是他们的文档: https://docs.ckeditor.com/ckeditor5/latest/features/table.html
npm install --save @ckeditor/ckeditor5-table
已成功运行。这些文件在我的存储库中。
但是,import Table from '@ckeditor/ckeditor5-table/src/table';
和import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar';
语句使事情崩溃。
我尝试将@ckeditor
文件夹移出主项目,并移至应用程序的app/webroot/js
文件夹。
我尝试用不同的方式调用脚本。
我目前正在尝试找出require.js
是否是加载这些模块的答案,但似乎无法理解如何将它们整合在一起。
基本上,最大的问题是:
对于CakePHP 2.3,
@ckeditor
文件夹应该在哪里
以及如何将这些文件/模块导入视图
不生成
Uncaught SyntaxError: Unexpected identifier
要么
Uncaught Error: Module name 'Table' has not been loaded yet for context:
错误?
还有一个问题:
有人在 CakePHP 应用程序中发布了有关如何使 CKEditor 5 及其表功能工作的内容吗?我似乎找不到它。
答案 0 :(得分:1)
ndm的答案使我仔细研究了webpack
。我一无所知。比require.js
更适合这份工作。
我必须说,我仍然不了解下面每件事的所有内部工作原理,但是我根据需要让ckeditor 5使用表。
我必须:
src/ckeditor.js
之前,请在npm run build
文件本身中设置工具栏和其他设置。我无法从HTML
开始使用它,因为我无法让js
来识别名称和类。我一直遇到Unexpected identifier
错误,直到我放弃并直接从src/ckeditor.js
调用它。这对我来说很好,因为我应用的所有 CK编辑器框都可以相同。如果您需要更改,则不确定如何使它正常工作。最后,我应该指出,对于我所有的命令行操作,我都是直接从CakePHP
的{{1}}目录工作的,所以安装东西的方式最终是脚本调用为:
app/webroot/js
,因此我创建该框的代码是:
<script src="/js/ckeditor5-build-classic/build/ckeditor.js"></script>
如果有人需要此参考,那么<textarea id="my_dear_ckeditor5_textarea"></textarea>
<!-- ckeditor.js built by following steps 1 thru 5 above -->
<script src="/js/ckeditor5-build-classic/build/ckeditor.js"></script>
<script type="text/javascript">
$(function(){
ClassicEditor
.create( document.querySelector( '#my_dear_ckeditor5_textarea' ) )
.catch( error => {} );
});
</script>
就是这样:
src/ckeditor.js