是 Ray 不是 Array

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement
Vue

Nuxt 出現 window or document undefined(window is not defined)

前言

最近開發 Nuxt.js 在引入套件的時候發生 window is not defined 的錯誤訊息,所以這一篇來記錄一下該如何解決

解決方式

由於 Nuxt 在打包的時候會將放在 plugins 一起打包進去 server,那麼就會導致某些外掛是不能正常運作(因為要取得 window),這邊舉例一個套件就很明顯,當你直接在 plugins 資料夾內新增一個 owlCarousel.js,並輸入以下內容

1
require('owl.carousel');

你會得到一個錯誤訊息

window is not defined
window is not defined

要解決這個方式就是要讓 Nuxt 在打包的時候,不要將 owl.carousel 打包進去 server,那麼解決方式很簡單只需要這樣就可以解決了

1
2
3
if (process.client) {
require('owl.carousel');
}

意思簡單來講就是只在 client 下引入這個套件

結尾

如果是引入 bootstrap 的話也是一樣,但是網路上有兩種做法

1
2
3
if (process.browser) {
require('bootstrap');
}

另一種則是

1
2
3
if (process.client) {
require('bootstrap');
}

以上這兩種我都有測試過都可以正常運作,但是依照如果是比較正式一點的話,後者應該會比較適合,畢竟官方文件有寫到這個方式

參考文獻

Window 或 Document 对象未定义?

nuxt.js + bootstrap

你的支持會直接轉換成更多技術筆記

如果我的筆記讓你少踩一個坑、節省 Debug 的時間,
也許你可以請我喝杯咖啡,讓我繼續當個不是 Array 的 Ray ☕

buymeacoffee | line | portaly
Terminal

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement

分享這篇文章

留言

© 2026 Ray. All rights reserved.

Powered by Ray Theme