繁星coding
2023-03-18 16:46:00
我在 monorepo 環(huán)境中有兩個包,一個 nuxtj 的應(yīng)用程序。一個 Vue 2 組件庫。我正在嘗試將組件包構(gòu)建為“庫”,以便我可以在 Nuxt 應(yīng)用程序中導(dǎo)入組件。構(gòu)建-安裝-導(dǎo)入庫后,nuxt 引發(fā)以下錯誤:document is not defined在庫構(gòu)建中function o(e) { var t, n, i = document.querySelector('style[data-vue-ssr-id~="' + e.id + '"]'); if (i) { if (f) return g; i.parentNode.removeChild(i) } if (m) { document我知道這是因為 nuxt在嘗試在服務(wù)器端呈現(xiàn)頁面時遇到了瀏覽器的對象。想一想,是不是因為我使用了組件內(nèi)樣式?如果有人可以確認(rèn)它會很棒嗎?
1 回答

慕碼人8056858
TA貢獻(xiàn)1803條經(jīng)驗 獲得超6個贊
如果你想創(chuàng)建一個完整的 Vue SSR 庫,你可以遵循這個非常有用的指南。
否則你可以通過這種方式告訴 Nuxt 只在客戶端加載你的庫:
在您的 Nuxt 應(yīng)用程序中創(chuàng)建文件plugins/my-vue-library-plugin.js
用這個內(nèi)容填充它以導(dǎo)入你的 Vue 組件庫:
import Vue from 'vue'
import MyLibrary from 'my-vue-library-path'
Vue.use(MyLibrary)
plugins然后在我們的密鑰中添加文件路徑nuxt.config.js
export default {
plugins: [
{ src: '~/plugins/my-vue-library-plugin.js', mode: 'client' }
]
}
如何查看該mode: 'client'屬性是關(guān)鍵,因為它告訴 Nuxt 僅在客戶端加載庫,因此您的document is not defined錯誤應(yīng)該會消失。
讓我知道是否有幫助。
添加回答
舉報
0/150
提交
取消