🤷‍♀️

Manifest: Line: 1, column: 1, Syntax error. manifest.json:1のエラー解決方法

2023/07/22に公開

はじめに

Reactでアプリを作成していたら、コンソールエラーがでました。

解決法

結論

index.htmlにもとからあった記述を

index.html
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

このように変更する。

<link rel="manifest" crossorigin="use-credentials" href="%PUBLIC_URL%/manifest.json" />

これで、コンソールエラーが消えました。

エラー解決までの流れ

1.ブラウザでアプリを確認しようとした際に、terminalにsyntax errorが出現。

記述した該当のコードを確認しても問題はなさそう…。

2.コンソールを確認


このようなエラーが出ていました。

3.解決法を試してみる

試したこと①

まず、一番簡単にできる解決法からやってみることに。
キャッシュを削除したらなおった!との記述を発見。
キャッシュを削除した。変わらずコンソールエラー。

試したこと②

では、一番有力候補っぽいこの解決法。今回実際に解決できた方法です。
これをどこに追加すればいいんだい?

<link rel="manifest" crossorigin="use-credentials" href="%PUBLIC_URL%/manifest.json" />

通常はheaderにあるらしい。
Reactアプリのヘッダーの記述ってどこ????????

ここにありました。publicフォルダ内のindex.htmlに記述発見。

manifest.jsonとは????

Webアプリケーションやブラウザ拡張機能の開発に使用されるJSONファイルです。 このファイルは、アプリケーションまたは拡張機能の基本情報や設定、アイコンなどのリソースの場所を定義します。

Reactアプリケーションでいうと…

Reactアプリケーションをcreate-react-appで作成するとpublicフォルダにmanifest.jsonというファイルが存在します。
ホーム画面に追加」した際のアイコンやUI等に関する設定をすることができ、ファイルの中身はjson形式で、アプリケーションに関する主なプロパティについて記述してあるようです。
初期状態は以下のようになっています。

{
  "short_name": "React App",
  "name": "Create React App Sample",
  "icons": [
    {
      "src": "favicon.ico",
      "sizes": "64x64 32x32 24x24 16x16",
      "type": "image/x-icon"
    },
    {
      "src": "logo192.png",
      "type": "image/png",
      "sizes": "192x192"
    },
    {
      "src": "logo512.png",
      "type": "image/png",
      "sizes": "512x512"
    }
  ],
  "start_url": ".",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff"
}

エラー発生の原因

Basic認証がかかっているとそれを突破できない

Basic認証とは?
Webサイトにアクセス制限をかける認証方法の1つです。 httpの機能が持つ認証システムで、手軽に制限をかける認証方法として知られています。
「Basic認証」はWebサイトへのアクセス制限をかける設定方法で、ほぼすべてのWebサーバーやブラウザに対応しています。

これで、引っかかったんですね。

参考にさせていただいたサイトさま

https://qiita.com/taqumo/items/c10856cc1b75056de635
https://note.com/_hi/n/n420f8f01c706
https://qiita.com/P-man_Brown/items/564b8197cb41275c05a3
https://blog.supersonico.info/archives/4507/
https://www.cybersolutions.co.jp/blog/basic/

Discussion