You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确配置vue-quill的image compressor图片压缩模块?

解决Vue Quill中quill-image-compress模块不生效的问题

你的配置核心问题是modules对象结构错误,Quill要求每个模块以独立键值对的形式注册,不能将多个模块嵌套在同一个配置项中。以下是正确的配置方案:

1. 确认依赖安装

如果尚未安装相关模块,执行以下命令:

npm install quill-image-compress quill-blot-formatter --save
# 或使用yarn
yarn add quill-image-compress quill-blot-formatter

2. 正确的组件配置

修改<script setup>中的modules配置,将BlotFormatter和ImageCompress作为两个独立模块注册:

<script setup>
import { QuillEditor } from "@vueup/vue-quill";
import ImageCompress from "quill-image-compress";
import BlotFormatter from "quill-blot-formatter";
import "@vueup/vue-quill/dist/vue-quill.snow.css";

const modules = {
  // 独立注册BlotFormatter模块
  blotFormatter: {
    module: BlotFormatter,
    options: {
      // 这里添加BlotFormatter的自定义配置,比如允许操作的元素类型
      // allowedBlots: [ImageBlot]
    }
  },
  // 独立注册ImageCompress模块
  imageCompress: {
    module: ImageCompress,
    options: {
      quality: 0.7,
      maxWidth: 1000,
      maxHeight: 1000,
      imageType: "image/jpeg",
      debug: true,
      suppressErrorLogging: false,
      insertIntoEditor: undefined
    }
  }
};
</script>

<template>
  <QuillEditor
    ref="quillEditorRef"
    v-model:content="articleForm.description"
    theme="snow"
    toolbar="full"
    contentType="html"
    :modules="modules"
  />
</template>

3. 关键说明

  • Quill的modules对象中,每个键对应模块名称,值是包含module(模块类)和options(配置项)的对象。你之前的写法将两个模块配置合并,导致Quill无法识别imageCompress模块,因此未触发压缩逻辑。
  • 开启debug: true后,可在浏览器控制台查看压缩过程日志,验证是否触发压缩。

验证方式

上传大图片后:

  • 查看浏览器控制台,若出现Compressed image from X kB to Y kB类日志,说明压缩生效。
  • 检查编辑器中插入的图片src,应为压缩后的base64格式(默认逻辑下)。

内容的提问来源于stack exchange,提问作者Mishen Thakshana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 10:25:05