【Nuxt.js】コンソールにエラーが!Nuxt.jsのデバッグのしかた

Nuxt.js

Nuxt.jsでコンソールにエラーが表示されるときのデバッグのしかたをメモしておきます。(ちょっと雑な記事です。参考程度にどうぞ。)

スポンサーリンク

ある日のトラブル

ある日、Nuxt.jsで制作したサイトで下位のページからトップページに遷移しようとすると、ページが表示されなくなるというトラブルに悩まされました。

このときコンソールには次のようなエラーが。

Cannot read properties of null (reading 'destroy')
Cannot read properties of undefined (reading '_isDestroyed')

どうやってデバッグしていくのでしょうか。

スポンサーリンク

まずは指摘されたリンクをクリック!

まずエラーが起こっている関数名に注目しましょう。

ここではdestroyという単語が目に入ります。エラーを見るにdestoryイベントに問題があるようです。

しかし、destroyイベントは自分が書いたソースコード内では使用しておらず、なぜ発生しているのかがわりませんでした。

こういうときは、とにかくコンソールに表示されているリンクをクリックするようにします。

リンクをクリックすると、DevToolがSourceタブに切り替わり、エラーが発生している箇所がハイライトされます。

ソースがminimumizeされていて見づらい場合は、ソースコードの左下にある{}をクリックしましょう。コードがフォーマットされ、見やすくなります。

コンソールに表示されているリンクをクリックしていき、原因を探します。これを繰り返していくと、いずれ根本的な原因となっている部分にたどり着きます。

怪しいワードが出てきました。

splideというのはこのサイトで使用していたモジュール「Splide.js」のことでしょう使用しているプラグインやモジュールの名前を頭に浮かべながら、コードを読み解いていくのがコツです。

Splide.jsで何らかのエラーが起こっていることが推察されます。

あとはSplide.jsとエラー内容をあわせてGoogle検索してみます。

原因と思われるSplide.jsのAPIドキュメントを見てみると、destoryという設定が用意されています。試しにfalseに設定してみました。

すると、エラーが解消!無事バグを修正することができました。

わかりにくいエラーこそ着実につぶそう

Nuxt.jsはSSRなどの複雑なしくみのため、エラーが発生しても原因がわかりにくいことが多いです。

DevToolのコンソールに表示されているエラーリンクをひとつひとつたどっていくのが、結局は一番早いことが多いため、紹介してみました。経験的にはプラグインやモジュールによるエラーが多いので、Nuxt自体のバグを疑う前に自分で追加したモジュールまわりを疑ってみるといいでしょう。

コメント

タイトルとURLをコピーしました