在vue中使用了ckeditor5后,收到如下图的反馈:

起初以为是小问题,像其他富文本一样加几个属性参数就有了,但是我发现我错了,错的离谱。那些参数加上去没有任何效果,后来查找下才知道是要下载插件。

以下分为两部分,第一部分为引入并使用插件,第二部分为CKEditor -duplicate -modules报错的解决方案,根据自身情况查看。

下载插件并引用

因为我引入的方式是在vue页面中加入该代码引用

import ClassicEditor from '@givebest/ckeditor5-custom-build'
  1. 在node_modules找到该文件夹 —— @givebest/ckeditor5-custom-build,并进入
  2. 安装所需要的富文本插件,此处以下划线按钮为例:
npm i   // 安装其他依赖
npm i @ckeditor/ckeditor5-basic-styles // 安装下划线等工具依赖
  1. 修改文件 node_modules@givebest\ckeditor5-custom-build\src\ckeditor.js,引入安装的插件
/*** @license Copyright (c) 2014-2021, CKSource - Frederico Knabben. All rights reserved.* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license*/
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor.js';
import Autoformat from '@ckeditor/ckeditor5-autoformat/src/autoformat.js';
import BlockQuote from '@ckeditor/ckeditor5-block-quote/src/blockquote.js';
import Bold from '@ckeditor/ckeditor5-basic-styles/src/bold.js';
import Essentials from '@ckeditor/ckeditor5-essentials/src/essentials.js';
import Heading from '@ckeditor/ckeditor5-heading/src/heading.js';
import Image from '@ckeditor/ckeditor5-image/src/image.js';
import ImageCaption from '@ckeditor/ckeditor5-image/src/imagecaption.js';
import ImageInsert from '@ckeditor/ckeditor5-image/src/imageinsert.js';
import ImageResize from '@ckeditor/ckeditor5-image/src/imageresize.js';
import ImageStyle from '@ckeditor/ckeditor5-image/src/imagestyle.js';
import ImageToolbar from '@ckeditor/ckeditor5-image/src/imagetoolbar.js';
import ImageUpload from '@ckeditor/ckeditor5-image/src/imageupload.js';
import Indent from '@ckeditor/ckeditor5-indent/src/indent.js';
import Italic from '@ckeditor/ckeditor5-basic-styles/src/italic.js';
import Link from '@ckeditor/ckeditor5-link/src/link.js';
import List from '@ckeditor/ckeditor5-list/src/list.js';
import MediaEmbed from '@ckeditor/ckeditor5-media-embed/src/mediaembed.js';
import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph.js';
import PasteFromOffice from '@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js';
import SimpleUploadAdapter from '@ckeditor/ckeditor5-upload/src/adapters/simpleuploadadapter.js';
import Table from '@ckeditor/ckeditor5-table/src/table.js';
import TableToolbar from '@ckeditor/ckeditor5-table/src/tabletoolbar.js';
import TextTransformation from '@ckeditor/ckeditor5-typing/src/texttransformation.js';import Alignment from '@ckeditor/ckeditor5-alignment/src/alignment.js';  // <--- ADDEDclass Editor extends ClassicEditor {}// Plugins to include in the build.
Editor.builtinPlugins = [Autoformat,BlockQuote,Bold,Essentials,Heading,Image,ImageCaption,ImageInsert,ImageResize,ImageStyle,ImageToolbar,ImageUpload,Indent,Italic,Link,List,MediaEmbed,Paragraph,PasteFromOffice,SimpleUploadAdapter,Table,TableToolbar,TextTransformation,Alignment  // <--- ADDED
];export default Editor;
  1. 然后,执行构建的命令,目的是vue使用的并不是这个文件,而且build/ckeditor.js (该文件已经压缩)
npm run build
  1. 最后,在Vue组件中,添加对应的属性,代码如下(以下代码已剔除非必要部分)
<template>
<!-- 已在main.js全局引入 --><ckeditor:editor="editor"v-model="formData.content":config="editorConfig"@input="onEditorInput"></ckeditor>
</template><script>import ClassicEditor from '@givebest/ckeditor5-custom-build'import '@givebest/ckeditor5-custom-build/build/translations/zh-cn.js'export default {data() {return {editor: ClassicEditor,editorConfig: {toolbar: {items: ['heading','|','bold','italic','underline',  // <--- ADDED'link','bulletedList','numberedList','|','outdent','indent','|','blockQuote','insertTable','mediaEmbed','undo','redo','imageInsert',],},language: 'zh-cn',image: {toolbar: ['imageTextAlternative','imageStyle:inline','imageStyle:block','imageStyle:side',],},table: {contentToolbar: ['tableColumn', 'tableRow', 'mergeTableCells'],}},}}}
</script>

以上便完成了基本的插件引入并使用;但是坑还没结束,当我在引入Alignment(对齐)的插件时,报错了!!!

CKEditor -duplicate -modules报错处理


官网文档说明
简单说就是:当由于 CKEditor 5 的安装或初始化方式错误而引发此错误时,它的某些模块被重复(评估并执行了两次),模块重复而导致的错误。

解决方案:
其实网上方法有很多,拉下源码重新编译再替换等等,大同小异,我试过都行不通还是报错,因此认真的查看官网,找解决的途径 —— 最终找到这段话,如下:
官网方案要点


具体操作意思就是:在 node_modules@givebest\ckeditor5-custom-build中将需要安装的插件包,确保都是一个版本或最新版本(@ckeditor/ckeditor5-dev-*除外),才能保证不会报错。因此,我将他们全部打包为最新版本,成功解决,版本如下。

【原创】vue中使用CKEditor5引入插件ckeditor-duplicated-modules报错处理相关推荐

  1. Vue中3.0版本严格模式运行项目报错

    vue3.0脚手架搭建项目在运行中报错,如下: 造成报错的原因是,vue3.0脚手架搭建项目的时候使用了严格模式 eslint,然后代码中我们使用了换行这些,就会导致项目运行出错 这个时候我们找到pa ...

  2. 【实战】Vue 中 Props 值因异步获取导致的报错问题解析

    问题简述 父子组件通过 props 传值,当所传值需要异步请求获取时,子组件在挂载完成阶段(mounted),拿不到props值 具体实例描述 父组件: <template><div ...

  3. 在vue中使用CKEditor5的巨坑!调整图片大小

    在vue中使用ckeditor5的时候,发现图片没有调整大小的框,一开始以为是没有什么属性,找了半天原来要下载插件. 没有插件那就下载,然后我下载了@ckeditor/ckeditor5-image之 ...

  4. vue人员轨迹_在vue中高德地图引入和轨迹的绘制的实现

    高德地图引入和轨迹的绘制 1.第一步 vue中使用cdn引入高德地图,并在main.js中进行全局配置.(百度上有高德地图引入与配置方法,这里就不详细介绍): 1)npm install vue-am ...

  5. vue是否可以做行车轨迹_在vue中高德地图引入和轨迹的绘制的实现

    高德地图引入和轨迹的绘制 1.第一步 vue中使用cdn引入高德地图,并在main.js中进行全局配置.(百度上有高德地图引入与配置方法,这里就不详细介绍): 1)npm install vue-am ...

  6. 在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS)

    在vue中使用海康插件实现视频监控,视频直播方法一(RTMP流加Flash加videoJS) 第一步 用npm装这个几个包 "video.js": "^6.6.0&quo ...

  7. vue中通过monment.js插件来将时间戳转换为常用的时间格式

    vue中通过monment.js插件来将时间戳转换为常用的时间格式 在项目中很多时候需要展示时间信息,我们一般都是用时间戳来传输时间信息,但是我们在页面展示的话是我们想要的常见格式,比如:2021-4 ...

  8. 在vue中使用海康插件实现视频实时监控(海康插件)

    在vue中使用海康插件实现视频实时监控(海康插件) 首先 下载并安装海康插件 webcontrol.exe 然后 直接就写代码把,所有方法都是海康他们直接封装好的demo 初始化之后,后台把密钥和一些 ...

  9. vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法

    vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法 配置和启用海康插件详情看本人博客 链接:https://blog.csdn.net/jinglianglove/article/de ...

最新文章

  1. springmvc的异常处理对静态的资源的处理
  2. NEO智能合约反编译工具
  3. excel设置单元格为文本
  4. Postman--Pre-request执行其他接口
  5. PChar 类型的又一些用法
  6. Jupidator 0.8.0 发布,Java 应用自动更新框架
  7. 严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
  8. C++描述杭电OJ 2019. 数列有序 ||
  9. 嵌入式linux系统移植的四大步骤_嵌入式系统移植步骤
  10. C++如何使用MySQL数据库
  11. SpaceEmacs Rocks Day8 学习笔记
  12. java如何构建图_如何从传递边构建子图?
  13. Bailian3142 球弹跳高度的计算【水题】
  14. Word 重新设置页码
  15. sftp非交互式每日定时拉取增量数据文件至本地合并至存量
  16. 用 Maven来管理java项目
  17. 【沧小海笔记】之基于FPGA的以太网设计相关知识——第二章 物理层介绍(基于88E1111)
  18. 7z001怎么解压在安卓手机上面_安卓手机怎么可以远程阿里云服务器桌面
  19. 2015版本的pdf文件合并拆分软件
  20. Django(十二)模型表关系的实现

热门文章

  1. sda 在linux是什么意思
  2. HTML超级马里奥代码(简单)
  3. 64位win7禁用驱动程序签名强制
  4. Geogebra中对图片和文本进行旋转
  5. html5定义页脚标签,使用 HTML5 中的新标签和新属性
  6. 指数对数计算公式基础知识
  7. can光端机、can转光纤或can光纤转换器功能特点介绍
  8. jsoup学习笔记简明教程
  9. ESP8266 整理篇:unity如何接收 (下下)
  10. 微信小程序考勤管理系统