javascript - Vue 3 CKEditor 5 添加插件 CodeBlock 错误重复模块

标签 javascript vue.js ckeditor vuejs3 ckeditor5

我正在尝试在我的编辑器中添加 CodeBlock 插件,这是我的组件

<script setup>
    import { ref, reactive } from 'vue'
    import CKEditor from '@ckeditor/ckeditor5-vue'
    import ClassicEditor from '@ckeditor/ckeditor5-build-classic'
    import CodeBlock from '@ckeditor/ckeditor5-code-block/src/codeblock'

    const editor = ClassicEditor
    const ckeditor = CKEditor.component
    const editorConfig = {plugins :[CodeBlock]}
    const data = reactive({
        title :"judulnya",
        content:'<b>Isi Post ni bos</b>'
    })
    const submitPost = ()=>{
        let form = {...data}
        console.log(form)
    }
</script>
<template>
   <div class="container-fluid p-0">

        <div class="row">
            <div class="col-12">
                <div class="card">
                    <div class="card-body">
                        <form @submit.prevent="submitPost">
                            <div class="mb-3">
                                <input type="text" v-model="data.title" class="form-control">
                            </div>
                            <div class="mb-3">
                                <ckeditor :config="editorConfig" :editor="editor" v-model="data.content"></ckeditor>
                            </div>
                            <button type="submit" class="btn btn-primary">Post</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div> 
</template>
<style>
.ck-editor__editable {min-height: 50vh;}
</style>

但是编译时我收到错误 CKEditorError: ckeditor-duplicated-modules。我已阅读文档,但几乎所有指南都不是 vue 3 风格,我无法很好地理解它。 短期来看,如何添加这个插件取决于我的编码风格?

最佳答案

构建包包含一个已使用 webpack 编译的文件。这意味着它包含所有必要的代码。

但是,CodeBlock 插件还从这些包中导入一些模块。如果您要求 webpack 构建这样的项目,您最终将包含(并执行)模块两次 - 首先,因为它们包含在构建包中,第二次,因为 CodeBlock 需要它们。

您需要创建自己的构建,您可以通过文档找到执行此操作的过程,可在此处访问:https://ckeditor.com/docs/ckeditor5/latest/installation/getting-started/installing-plugins.html

但是 CKEditor 预见到了这一点,并提供了一个在线构建器,可以为您完成工作并使其变得简单(您选择您的选项和插件)。您可以在这里找到它:

https://ckeditor.com/ckeditor-5/online-builder/

然后,您只需将导入内容替换为使用官方构建器创建的导入内容即可。

关于javascript - Vue 3 CKEditor 5 添加插件 CodeBlock 错误重复模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73397478/

相关文章:

javascript - 聊天小部件的通知

javascript - 获取页面加载的百分比。 Vue.js

javascript - Vuejs 无法加载 svg 图片?

node.js - 有没有办法在 Node 服务器的 httpd conf 中设置 ProxyPass

CKeditor Html 5 <figure> 标签问题

javascript - 我试图在 javascript 中创建带有时间属性的东西,但它不起作用

php - JavaScript 聊天室用户名颜色

javascript - 将 HTML 元素的样式属性重置为样式表定义的默认值?

javascript - 从对话框 html 元素访问 ckeditor 函数而不使用 "onOk"

javascript - 如何使用 PHP 将内部数据设置为 CKEDITOR