整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ
解決 「quill Overwriting modules/xxx with class...」問題
前言
這一篇記錄一下我在使用 Quill 的時候遇到的「quill Overwriting modules/xxx with class…」問題,以及解決的方法。
問題
首先我是使用 VueQuill 這個套件來使用 Quill,但是在使用的時候會出現以下的錯誤訊息:
1 | |

其實用法也很簡單,就只是使用 v-if 開啟關閉元件而已就噴了這個錯誤,可以詳見範例:
而這個問題不只局限於 v-if,在 SPA 模式下切換也會發生這個問題,雖然在系統運作及操作上是沒有任何問題,可是 Console 會一直噴這個錯就覺得很不爽,所以就來記錄一下解決的方法。
解決方法
解決方式其實很簡單,如果你有使用 Quill.register('modules/ImageUploader', ImageUploader); 來註冊的話,只需要改成以下這樣就可以了
1 | |
如果是 VueQuill 的開發者,可能會使用別種方式,那麼這邊我會建議使用 options 傳入參數方式,因為這樣才可以使用上方程式碼解決,例如…
1 | |
那麼為什麼會建議使用 options 呢?其實我嘗試過官方封裝的方式,但是我發現如果要擴充的話相對難度較高(例如引入:highlight 等),因此我才改用 options 方式。
接下來回頭說明一下為什麼會一直噴「quill Overwriting modules/xxx with class...」這個錯誤,我們都知道使用 v-if 及路由切換時,元件本身是會被銷毀的,但是 Quill 的模組註冊在整個 Quill 中,它並不會因為元件的銷毀而自動清除,所以當你再次建立元件時,它就會再次嘗試註冊相同的模組,這就導致了你看到的那個錯誤訊息。
因此只需要在註冊前判斷是否已經註冊過,如果有註冊過就不再註冊,這樣就可以解決這個問題哩~
結尾
其實我一度有懷疑是 VueQuill 的問題,但後來才發現不是,所以就來記錄一下哩。
整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ