做网站、落地页、邮件模板时,很多人卡在「既要可视化拖拽、又要能导出干净代码」这两件事上。纯手写 HTML/CSS 太慢,闭源建站工具又往往把产物锁在自己的格式里,想拿走改、想接进自己的 CMS 都费劲。

GrapesJS 给的答案是一个开源的「网页搭建框架」:它把模板拆成结构(HTML)、样式(CSS)和变量,让你在浏览器里用拖拽的方式搭建页面,同时保留导出标准 HTML/CSS 的能力。它从设计之初就面向 CMS 场景——用来加速动态模板的生产,也可以做网页、邮件或移动端模板。

项目基本信息

信息项详情
项目名称GrapesJS
GitHub地址https://github.com/GrapesJS/grapesjs
项目描述免费开源的网页搭建框架,用拖拽方式构建 HTML 模板并保留代码导出能力
作者GrapesJS
开源协议BSD 3-Clause License
开源状态公开
LanguagesTypeScript
支持平台Web
最后更新2026-10-21

一、项目介绍

GrapesJS 是一个免费、开源的 Web Builder Framework,核心定位是「帮助更快更容易地构建 HTML 模板」。它把任何模板系统都抽象成结构、样式、变量三层,最终在服务器端被替换成真实内容并渲染到客户端。它最初就是为嵌入 CMS 加速动态模板生产而设计的,官方也提供了可嵌入外部应用的 Studio SDK(商业授权)。

通过一组管理器,GrapesJS 把可视化编辑拆成清晰模块:Block Manager(积木块)、Style Manager(样式)、Layer Manager(图层)、Code Viewer(代码视图)、Asset Manager(资源管理)。它也内置默认命令用于创建和管理组件,并支持本地与远程存储。

二、核心优势

  • 可视化拖拽:积木块、图层、样式面板组合,零代码也能搭出页面。
  • 代码不锁死:随时查看并导出标准 HTML/CSS,可接进自有 CMS 或服务端渲染。
  • 模块化架构:Block / Style / Layer / Asset 等管理器各司其职,易扩展。
  • 插件生态丰富:官方与社区插件覆盖导出 zip、表单、导航栏、倒计时、渐变样式、IndexedDB / Firestore 存储等。
  • 框架友好:提供 @grapesjs/react 等封装,便于在 React 里声明式构建编辑器 UI。

三、适用场景

  • CMS 动态模板生产:让非技术人员也能搭页面,再由服务端填充内容。
  • 落地页 / 营销页:快速拖拽出可上线、可导出代码的页面。
  • 邮件模板:官方提供 Newsletter 编辑器示例。
  • 嵌入自有产品:用 Studio SDK 或 React 封装把搭建能力做进 SaaS。

四、安装教程

通过 CDN 直接引入(无需构建):

<link rel="stylesheet" href="https://unpkg.com/grapesjs/dist/css/grapes.min.css" />
<script src="https://unpkg.com/grapesjs"></script>

使用 npm 安装(推荐,便于工程化):

npm i grapesjs

或从源码克隆:

git clone https://github.com/GrapesJS/grapesjs.git

常见报错与处理:

grapesjs is not defined

CDN 脚本未加载或路径错误,确认 unpkg.com/grapesjs 可达;npm 方式需先 import grapesjs from 'grapesjs'。

容器无内容渲染

grapesjs.init 的 container 选择器未匹配到 DOM,确认容器元素已存在于页面且传入正确选择器(如 #gjs)。

五、使用示例

最小初始化:

<div id="gjs"></div>
<script type="text/javascript">
  var editor = grapesjs.init({
    container: '#gjs',
    components: '<div class="txt-red">Hello world!</div>',
    style: '.txt-red{color: red}',
  });
</script>

真实输出:页面中出现一个可拖拽编辑的画布,红字 Hello world! 按 .txt-red 样式渲染;在 Style Manager 改颜色会实时更新,Code Viewer 里能看到对应的 HTML/CSS,并可一键导出。

六、常见问题

  • 协议是什么? 采用 BSD 3-Clause License(保留版权声明、不用于背书),商业项目可合规使用。
  • 能导出代码吗? 能,编辑器内即可查看并导出标准 HTML/CSS。
  • 和纯建站工具比如何? GrapesJS 是框架而非托管服务,产物归你所有,可嵌入自有系统。
  • 有 React 版本吗? 官方提供 @grapesjs/react 封装,便于声明式集成。

七、总结

GrapesJS 把「可视化搭建」和「代码归属权」这两件通常矛盾的事合在了一起:拖拽提效,导出保留干净的 HTML/CSS,产物不被锁定。对需要把页面搭建能力做进自有 CMS 或产品的团队,它是一个成熟、协议友好、生态完善的开源选择。