見出し画像

プログラマー探偵の事件簿: ESLintの矛盾

事件の始まり

今年始めたNuxt.jsを使ったTSNNMP FCの開発中のことである。マップの中に

画像4

のようにアイコンを表示しようとしてJavaScriptのソースコードに16進数の文字コードを入力したらESLintが「その書き方はおかしい」と指摘された。

画像1

0xF01C4ではなく小文字で0xf01cにしないさいと言っている。いつものように自動で修正してくれるコマンドを実行してみた。「あれ、エラーが消えない!!」

画像2

指摘内容は別だが16進数の書き方が悪いということのようだ。自動修正してくれるコマンドを実行してみたが、また最初の書き方に戻って、最初のエラーになる。

画像3

無限ループが発生した。数時間悩むことになる。

コーディング規則の矛盾

原因は、(Nuxt.js環境で)ESLintに標準で設定されているコーディング規則に矛盾があることがわかった。片方の規則を無効にした。

/* eslint prettier/prettier: 0 */
const iconList = [
 {
   text: 'デスクトップ',
   icon: 'mdi-desktop-mac',
   value: 'desktop',
   code: 0xF01C4,
 },

コメントを書けば、その後のチェックは無効になった。それで、無限ループから開放された。
助手の猫は、留守番中にご飯を食べすぎて、気分が悪いらしく、この件に関してコメントはない。

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。