??為了實現(xiàn)瀏覽器端運行時解析.vue文件并動態(tài)插入組件,終于找到了一個神器vue3-sfc-loader——可以實現(xiàn)完整的.vue文件解析構建,而不只是template。

image.png
??不要被0.x的版本號和3位數(shù)的周下載誤導了,這個庫已經(jīng)被使用在了大名鼎鼎的
monaco-editor(也就是VSCode)中。??使用說明和Demo都可以在官網(wǎng)中找到,本文不再贅述。但就像大部分0.x版本的庫樣,使用細節(jié)會出現(xiàn)很多問題,這才是本文的主題。
細節(jié)
- 雖然名字叫
vue3-sfc-loader,但實際上也可以加載vue2,或者非vue文件。但是,使用vue2時一定要用
import { loadModule } from 'vue3-sfc-loader/dist/vue2-sfc-loader.js'
而不是
import { loadModule } from 'vue3-sfc-loader'
雖然API一模樣,而且解析template時也沒區(qū)別。但當你涉及到script解析時就會出現(xiàn)不可預知的錯誤。
- 唯一的API —— loadModule(path,options),如果要解析vue文件,那么path的路徑后綴一定要以
.vue結尾 - 對于import的對象,需要通過options中的moduleCache對象進行注入,當然這種注入是靜態(tài)的
- 如何動態(tài)注入,導入自定義文件? 答:目前不行