quill-image-resize-module 踩坑
项目中使用了 Vue-Quill-Editor,挺好用的,但是对于图片上传并不是我希望的效果。好在有扩展,可以满足我的两个需求:
- 上传图片到图床
- 调整图片大小
分别对应两个module:
- quill-image-extend-module
- quill-image-resize-module
quill-image-extend-module
quill-image-extend-module照着readme一步一步操作即可
quill-image-resize-module
这里遇到3个问题:
- imports 问题
需要在webpack中手动添加quill插件
- register 问题
- quill Cannot import modules/imageResize. Are you sure it was registered?
这两个问题是一定要把大小写写对。。。
代码中注册时写了imageResize,所以后面使用时也要写生首字母小写
完整的代码如下:
vue.config.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| const webpack = require('webpack')
module.exports = { chainWebpack(config) { config .plugin('Quill') .use(webpack.ProvidePlugin, [{ 'window.Quill': 'quill' }]) } }
|
vue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| import { quillEditor, Quill } from 'vue-quill-editor' import { ImageExtend, QuillWatch } from 'quill-image-extend-module' import ImageResize from 'quill-image-resize-module' import 'quill/dist/quill.core.css' import 'quill/dist/quill.snow.css' import 'quill/dist/quill.bubble.css'
Quill.register('modules/ImageExtend', ImageExtend) Quill.register('modules/imageResize', ImageResize)
...
quillEditorOptions: { modules: { imageResize: { modules: ['Resize', 'DisplaySize'] }, ImageExtend: { loading: true, name: 'file', action: 'url, response: (res) => { return res.url } }, // 如果不上传图片到服务器,此处不必配置 toolbar: { // container为工具栏,此次引入了全部工具栏,也可自行配置 container: [ ['bold', 'italic', 'underline', 'strike'], ['blockquote', 'code-block'], [{ 'list': 'ordered' }, { 'list': 'bullet' }], ['link', 'image'], [{ 'color': [] }, { 'background': [] }], [{ 'align': [] }] ], handlers: { 'image': function() { // 劫持原来的图片点击按钮事件 QuillWatch.emit(this.quill.id) } } } } }
|