在 Vanilla JS 项目中安装 CKEditor 5:npm 与 ZIP 完整快速上手指南

发布时间:2026/11/13 2:09:27

在 Vanilla JS 项目中安装 CKEditor 5:npm 与 ZIP 完整快速上手指南 在 Vanilla JS 项目中安装 CKEditor 5npm 与 ZIP 完整快速上手指南【免费下载链接】ckeditor5Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.项目地址: https://gitcode.com/GitHub_Trending/ck/ckeditor5本指南面向不使用前端框架、以原生 JavaScriptVanilla JS构建 Web 应用的前端开发者介绍在当前 CKEditor 5 开源仓库包版本 48.5.0中通过npm或ZIP 压缩包两种方式安装并运行 CKEditor 5 的完整流程。读完本文你将掌握包安装、模块与 CSS 导入、编辑器创建与配置、以及商业版 premium features 的集成方法能够在浏览器中快速跑起一个可用的富文本编辑器。为什么需要两种安装方式CKEditor 5 是一个模块化架构的富文本编辑器框架。不同于下载一个 JS 文件就完事的传统编辑器它的源码按包package拆分并基于 ES Modules 组织因此安装方式会直接影响你后续的构建与部署策略npm 方式适合已经或愿意引入 JavaScript 打包器的现代前端工程可以按需引入插件构建产物更小ZIP 方式适合不想引入打包器、也不依赖 CDN 的部署场景直接使用官方预构建好的完整 bundle。两种方式在44.0.0 版本之后都要求配置licenseKey属性才能运行编辑器详见下文许可证要求。方式一通过 npm 安装前置条件需要一个打包器使用 npm 安装时**必须借助打包器bundler**来正确构建 JavaScript 文件。CKEditor 5 兼容目前所有主流现代 JavaScript 打包器如需快速搭建一个全新项目官方推荐使用 Vite在其脚手架指南中可以找到npm create vite一类的初始化命令。安装主包执行下面的命令安装包含全部开源插件的 CKEditor 5 主包npm install ckeditor5在当前仓库中该包对应 packages/ckeditor5/package.json。从其中可以确认两点关键事实该包是一个type: module的 ES Module 包其入口为src/index.ts发布产物为dist/ckeditor5.js它的 dependencies 以workspace:*的方式聚合了仓库内几乎全部官方开源包从编辑引擎、六大编辑器类型到字体、表格、图片、列表、代码块等特性插件。更具体地说packages/ckeditor5/src/index.ts 只是把所有这些官方包统一export *出来。所以import { ClassicEditor, ... } from ckeditor5时你拿到的其实是跨包的聚合出口——这也是为什么一个包搞定所有开源插件。导入模块与样式安装完成后即可从ckeditor5包导入所有模块。同时CSS 样式必须单独导入JS 与样式分离便于打包器处理树摇与按需加载import { ClassicEditor, Essentials, Bold, Italic, Font, Paragraph } from ckeditor5; import ckeditor5/ckeditor5.css;提示非英语界面导入并注册 UI 翻译仅对美式英语是可选的。如需其他语言界面请参考 UI 语言设置指南中介绍的翻译导入方式。许可证要求从版本 44.0.0 起licenseKey属性是使用编辑器的必要条件。如果你通过 npm 使用自托管self-hosted编辑器要么必须遵守 GPL 协议在配置中填GPL要么购买自托管分发许可证。也可以注册免费试用计划来测试编辑器、评估自托管方案。关于GPL键许可证与激活指南还补充了一个重要限制GPL键只适用于自托管分发npm 或 ZIP云托管 CDN 分发不接受该键云分发始终要求商业许可证键。此外该指南详细区分了 trial14 天试用、development开发不消耗 editor loads但限制本地域名、production生产按用量计费时消耗 loads与 evaluation 四种许可证键类型需要正式商用前务必先阅读。创建一个最小可运行编辑器创建编辑器的核心模式是选择编辑器类型 → 配置插件与工具栏 → 调用create()。以最常用的经典编辑器ClassicEditor为例ClassicEditor .create( { attachTo: document.querySelector( #editor ), licenseKey: YOUR_LICENSE_KEY, // 或 GPL。 plugins: [ Essentials, Bold, Italic, Font, Paragraph ], toolbar: [ undo, redo, |, bold, italic, |, fontSize, fontFamily, fontColor, fontBackgroundColor ], root: { placeholder: Type here... } } ) .then( /* ... */ ) .catch( /* ... */ );配合如下 HTML 挂载点create()返回 Promise初始化成功后可在then回调中拿到editor实例失败时进入catchdiv ideditor pHello from CKEditor 5!/p /div这就是让一个骨架级编辑器在浏览器中运行所需的全部代码。对上述配置稍作拆解attachTo指向编辑器挂载的 DOM 元素。注意不同编辑器类型的挂载配置不同——Inline、Balloon、Decoupled 等多使用root.element而 MultiRoot 编辑器需要roots对象同时声明多个根详见 编辑器类型指南。原文档特别强调多根编辑器multi-root editor需要更高级的 roots 配置。plugins传入已导入的插件类。其中Essentials是一个必备功能合集。从源码 packages/ckeditor5-essentials/src/essentials.ts 可以看到它聚合了AccessibilityHelp、Clipboard、Enter、SelectAll、ShiftEnter、Typing、Undo七个插件使编辑器具备与textarea类似的基础编辑能力但它不定义任何块级容器例如段落Paragraph因此文档明确提示如果编辑器需要处理块级内容务必额外引入Paragraph——这正是上面示例同时引入Paragraph的原因。toolbar按字符串 ID 列出工具栏按钮|用于插入分隔符。可用的按钮 ID 由已注册插件决定例如bold/italic来自Bold/ItalicfontSize等来自Font。更全面的配置方法见 配置指南 与 工具栏指南。root.placeholder设置编辑区占位提示文本与之同族的root.initialData可用来以编程方式指定初始内容详见下文下一步。方式二通过 ZIP 压缩包安装如果你不想用 npm 构建项目也无法依赖 CDN 交付可以下载包含 CKEditor 5 及其全部插件的现成文件。下载与解压从官方 CDN 的ckeditor5-{版本号}/zip/路径下载最新 CKEditor 5 分发的 ZIP 压缩包当前仓库对应版本为 48.5.0下载地址中的版本号应与你实际使用的版本一致将压缩包解压到项目内的专用目录例如vendor/建议在目录名中包含编辑器版本号这样每次升级新版本时可确保正确的缓存失效策略。ZIP 包内的文件清单解压后你会得到以下文件文件说明index.html一个已包含可用编辑器的示例页面ckeditor5/ckeditor5.js即用型编辑器 ESM bundle内含编辑器与全部插件推荐构建ckeditor5/ckeditor.js.map上述 ESM bundle 的 source mapckeditor5/ckeditor5.umd.js即用型编辑器 UMD bundle内含编辑器与全部插件次要构建ckeditor5/ckeditor5.umd.js.map上述 UMD bundle 的 source mapckeditor5/*.css编辑器样式表大多数场景使用ckeditor5.css其他样式文件见 编辑器与内容样式指南translations/编辑器 UI 翻译文件见 UI 语言设置指南README.md、LICENSE.md说明与许可文件ZIP 方式同样受 44.0.0 起的licenseKey要求约束自托管场景下需遵守 GPL 或购买自托管分发许可证。运行示例页面查看编辑器实际效果最快捷的方式是用 HTTP 服务器来托管index.html。重要警告必须在本地服务器环境运行。ZIP 包默认通过 import maps 加载模块直接用浏览器打开本地 HTML 文件会触发浏览器的安全规则CORS 策略要求模块必须同源加载。因此请使用nginx、caddy、http-server等工具将文件以 HTTP/HTTPS 方式提供服务。安装商业版 premium features开源版之外CKEditor 5 还有一系列商业付费特性premium features如 Format Painter格式刷、协作编辑、导出 PDF/Word 等。它们与开源版一样支持 npm 与 ZIP 两种安装方式。通过 npm 安装 premium features所有 premium features 都打包在独立的ckeditor5-premium-features包中安装方式与开源包一致npm install ckeditor5-premium-features之后从两个包分别导入模块并分别导入各自的 CSSimport { ClassicEditor, Essentials, Bold, Italic, Paragraph, Font } from ckeditor5; import { FormatPainter } from ckeditor5-premium-features; import ckeditor5/ckeditor5.css; import ckeditor5-premium-features/ckeditor5-premium-features.css; ClassicEditor .create( { attachTo: document.querySelector( #editor ), licenseKey: YOUR_LICENSE_KEY, plugins: [ Essentials, Bold, Italic, Paragraph, Font, FormatPainter ], toolbar: [ undo, redo, |, bold, italic, |, fontSize, fontFamily, fontColor, fontBackgroundColor, |, formatPainter ], root: { placeholder: Type here... } } ) .then( /* ... */ ) .catch( /* ... */ );div ideditor pHello from CKEditor 5!/p /div要点与开源版一致把导入的插件传入create()配置、在toolbar中添加对应的工具栏项。但请注意使用 premium features 必须用合法的许可证键激活参见下文获取 premium features 许可证键。从 npm 自托管时同样需要购买 premium features 的许可证。通过 ZIP 安装 premium features从官方 CDN 的ckeditor5-premium-features-{版本号}/zip/路径下载包含 premium features 的最新分发压缩包解压到项目内专用目录同样建议目录名带上版本号以利于缓存失效。ZIP 包结构如下index.html—— 包含可用编辑器的示例页ckeditor5/目录ckeditor5.js—— 编辑器 ESM bundle推荐构建ckeditor.js.map—— 上述 bundle 的 source mapckeditor5.umd.js—— 编辑器 UMD bundle次要构建ckeditor5.umd.js.map—— 上述 UMD bundle 的 source map*.css—— 编辑器样式表多数场景用ckeditor5.css其他文件见 编辑器与内容样式指南translations/—— 编辑器 UI 翻译见 UI 语言设置指南ckeditor5-premium-features/子目录ckeditor5-premium-features.js—— premium features 的 ESM bundle推荐构建ckeditor5-premium-features.umd.js—— premium features 的 UMD bundle次要构建*.css—— premium features 样式表多数场景用ckeditor5-premium-features.csstranslations/—— premium features 的 UI 翻译README.md、LICENSE.md。与开源版 ZIP 一样最快捷的验证方式是把index.html通过 HTTP 服务器托管同样必须遵守 CORS 同源加载规则不能直接双击打开本地 HTML 文件。获取 premium features 许可证键激活 CKEditor 5 premium features 需要商业许可证。最简单的途径是注册 CKEditor Premium Features 的14 天免费试用无需绑定信用卡来测试全部付费特性也可以通过官方销售渠道获取定制方案。拿到激活密钥后按 许可证与激活指南 将其填入配置的licenseKey字段即可。下一步让编辑器真正可用安装完成、编辑器能渲染之后通常会继续做三件事读写编辑器数据用editor.getData()获取内容例如通过 JS 发送到服务器用editor.setData()替换内容或用root.initialData配置项以编程方式指定初始数据它会覆盖 HTML 层提供的内容。详细示例见 获取与设置数据指南。若编辑器挂载在textarea上Classic editor 在表单提交时会自动把内容同步回该元素无需额外 JS。进一步定制编辑器参考 配置指南 了解全部配置项如updateSourceElementOnDestroy、自动保存、PendingActions 等生命周期与行为控制。按需开启更多特性浏览 特性索引挑选图片、表格、列表、协作等能力加入plugins与toolbar。小结无论选择 npm 还是 ZIPCKEditor 5 的接入模式都统一为选编辑器类型 → 装配插件 → 配置工具栏 →create()。npm 路径适合已使用打包器的工程并支持按需引入ZIP 路径则面向免构建、免 CDN 的部署。自 44.0.0 起两者都必须提供licenseKeyGPL 开源使用填GPL商业使用申请对应许可证premium features 则另需独立的商业激活密钥。结合本仓库中 packages/ckeditor5/src/index.ts 的聚合导出与 packages/ckeditor5-essentials/src/essentials.ts 的插件组合你可以随时回到源码层面验证每个配置项的真实行为。【免费下载链接】ckeditor5Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.项目地址: https://gitcode.com/GitHub_Trending/ck/ckeditor5创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/12 1:16:05

线控底盘闭环系统设计:从原理到调试实战

1. 线控底盘:从“机械连接”到“电信号闭环”的范式转移先说个现象。我接触到的不少做线控底盘项目的工程师,第一反应往往是去盯着电机选型、减速比、结构强度这些机械参数,等真正上了台架做阶跃响应测试,才发现问题全部集中在“控…

2026/11/12 1:24:06

少儿编程Python课程资料:1-24课阶梯式设计与项目实战

简介:面向Python少儿编程学习的整套课程资料,共覆盖24个主题,适合零基础到进阶的青少年及准备蓝桥杯一级、NOC一二级等编程竞赛的学员。内容从基础语法起步,逐步延伸到字符串与简单加密、文件与图像处理、游戏逻辑、网络爬虫、数据…

2026/11/12 1:24:06

SSM框架在工艺美术馆数字化平台中的应用与实践

## 1. 项目背景与技术选型山西工艺美术馆数字化平台是一个典型的Java Web毕业设计项目,采用SSM(SpringSpringMVCMyBatis)框架组合实现。这个选题结合了文化传承与信息技术,具有以下典型特征:1. 业务场景特殊性&#xf…

2026/11/13 2:06:43

武汉在哪办理电工证考试真题与备考技巧

电工证在武汉怎么考?真实经历告诉你该怎么选 你是不是正在找工作,却卡在了必须要有电工证这一步?我有个朋友小张,去年刚毕业,面试了十几家单位,结果都因为没电工证被拒绝了。他硬着头皮在武汉考了低压电工证,结果一个月工资直接翻了一倍,现在还在做电…

2026/11/13 2:06:43

河北哪里考电工证好考多久拿证?证书过期了不知道怎么复审延期?

河北哪里考电工证好考多久拿证?证书过期了不知道怎么复审延期? 你是不是也遇到过这种情况:手里的电工证已经过期了,却不知道怎么复审,更不知道去哪里考,担心错过机会,影响工作。这其实很正常,很多人在拿到电工证之后,对复审和继续教育流程并不熟悉,…

2026/11/13 2:06:43

考电工证理论练习全流程办理指南

电工证理论练习怎么练才不白花钱?全国通用证怎么考? 怕考不过白交培训费?电工证理论练习真的没那么难,关键是要找对方法和方向。作为许昌劳务班组负责人,我见过太多人因为没练好理论题,导致考试挂科,培训费打了水漂。但如果你按照正确的方法去练习,…

2026/11/13 2:06:43

电工证 操作证实操考试考什么

电工证 操作证在哪考最靠谱 怕考不过白交培训费 怕考不过白交培训费?别慌,这期咱们就聊聊 电工证 操作证 到底 在哪考 最靠谱,怎么避免踩坑,还能一次通过。别再被那些“包过”“保分”忽悠了,真正靠谱的考试流程、实操内容、复习方法,我给你掰开…

2026/11/13 2:06:43

办理_自装需要电工证吗需要什么材料

自装需要电工证吗?保姆级教程教你搞定 你是不是也觉得学历不高就报不了电工证?别急,今天我就从一个漯河中小施工企业负责人的角度,给你讲讲【_自装需要电工证吗】的真相,还有怎么一步步拿到证的保姆级教程。…

2026/11/13 2:01:43

电工高压和低压电工证行业前景与薪资待遇

外省电工证能转回来吗?多久拿证能上岗干活 之前考的证在外省能不能转过来?这是很多电工朋友在换城市、换工作时最担心的问题。尤其像你们这种在洛阳涧西区从事房建工程的电工,经常面临项目地点变化、跨省施工的情况,证照能否顺利转移成了刚需。好消息是,…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/13 0:01:06

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了 你是不是也像我一样,第一次听说“高压电工证”这个名词,就感觉一头雾水?其实很多人都跟我一样,不知道去哪报名、怕被中介坑,结果花了冤枉钱还考不上。今天我就从一个在商丘培训过的学员角度,…

2026/11/13 0:01:06

黎里考电工证在哪里值不值得考

黎里考电工证在哪里值不值得考 之前考的证在外省能不能转过来?这是很多在外地工作、准备回老家发展的朋友最关心的问题。特别是在黎里地区,很多从事电力相关工作的朋友,都面临这样一个难题: 外省的电工证能否在本地使用?值不值得考?…

2026/11/13 0:01:06

毕节哪里考电工证 怎么报名学历不高也能上手

毕节哪里考电工证 怎么报名学历不高也能上手 你是不是也和我一样,学历不高,想着考个电工证,但又担心自己条件不够,怕报不上名?其实不然,只要符合条件,学历不高也能考电工证。今天就来聊聊【毕节哪里考电工证】这个问题,还有怎么报名,让你一步到位不…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/12 9:51:42

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑