「マニフェストは有効なJSONではありません。行:1、列:1、予期しないトークン」というエラーが引き続き発生します。私のコードの問題がわかりませんか?ここに私がこれまで持っているものがあります:
{
"manifest_version": 2,
"name": "extension",
"version": "1.0",
"description": "My first Chrome extension.",
"browser_action": {
"default_icon": "icon.jpg",
"popup": "popup.html"
}
}
Visual Studio 2010では、manifest.jsonファイルプロパティをビルドアクション:なしで設定しました。
Visual StudioでContentに変更すると、デプロイ時にファイルが確実に転送されました。
たぶんあなたのも同様の問題です。
編集
私のダウン投票を考えて、私は拡張して、私のポイントは、行1、列1に有効なjsonがあり、実際のjsonファイルが返されるよりも404 http応答を受け取る可能性が高いということだと思いました。
したがって、ファイルが適切な場所にないか、サーバーに権限がないなどの可能性がありますが、上記が私の問題です。確かに、それは多分私のもので間違っていたものにあまりにも特定であり、あなたのもので間違っていたものを明確にではありません。
しかし、一般的なポイントはまだ残っています。Webサーバーがjsonファイルのhttp応答を返すことが原因である可能性が高いため、ブラウザのネットワークログで応答を確認してください。
[ネットワーク]タブでmanifest.jsonのContent-Typeを確認します。これはtext/htmlではなくapplication/jsonである必要があります。
間違ったコンテンツタイプがある場合は、Webサーバーの設定を構成して、jsonファイルを正しく提供する必要がある場合があります。
私の場合、nginx sites-enabledファイルに追加する必要がありました。
場所〜*。(jpg | jpeg | gif | png | css | js | ico | xml | svg | json)$
browser_actionキーに間違った値を使用しているようです。ポップアップテンプレートを指定するには、default_popupを使用する必要があります。そのはず :
{
"manifest_version": 2,
"name": "extension",
"version": "1.0",
"description": "My first Chrome extension.",
"browser_action": {
"default_icon": "icon.jpg",
"default_popup": "popup.html"
}
}
私はこれが古い質問であることを知っていますが、万が一上記の受け入れられた答えがうまくいかない場合に備えて、manifest.json
のスペルとパスが正しいことを確認してください。以前、単純なタイプミスで同じエラーが発生しました。単純な間違いですが、それは起こります!
私の特定のケースでは、manifest.json
にこれを追加しました:
"storage": {
"managed_schema": "storage.json"
}
しかし、私のstorage.json
は空でした。次のコンテンツでstorage.json
ファイルを編集する必要がありました。
{
"$schema": "http://json-schema.org/draft-03/schema#",
"type": "object",
"properties": {
"adminSettings": {
"title": "A valid JSON string compliant with backup format.",
"description": "All entries present will overwrite local settings.",
"type": "string"
}
}
}
しかし、一般的に、このLine 1 Col 1 Unexpected Token誤解を招くエラーを取得した場合の基本的なアドバイスは次のとおりです:このファイルの構文に関係するもの。
manifest.json
、name
、description
など、最も一般的で単純な文字列をmanifest_version
ファイルの先頭に移動します。manifest.json
に戻します。これが、私のstorage
ブロックが問題であることがわかった方法です。別のChrome拡張機能を見て、彼らがどのように処理したかを確認し、エラーを認識しました。このエラーは、マニフェストが空の場合、またはマニフェストがまったくない場合にも発生します。 u何らかのフレームワークを使用する場合、例えば角度、実稼働ビルドにマニフェストがあるかどうかを確認してください。そうでない場合は、angular.json/angular-cli.jsonの「manifest.json」をアセット配列に追加します。
例:"assets": ["assets", "favicon.ico", "manifest.json"]
拡張機能(MIMEタイプ)のため、ブラウザーはマニフェストを見つけることができません。 Chrome DevTools> Network> Headers> Content-Type]で、マニフェストのコンテンツタイプは実際のマニフェストファイル拡張子(.json
または.webmanifest
)と一致する必要があります。 404エラーを解決するには、web.config
でファイルタイプを宣言する必要があります。
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
<mimeMap fileExtension=".webmanifest" mimeType="application/manifest+json" />
</staticContent>
クロスオリジン属性を追加しました。
<link rel="manifest" crossorigin="use-credentials" href="%PUBLIC_URL%/manifest.json" />
Manifest.jsonファイルをUTF8形式で保存してください。
これは古いですが、同じ問題があり、標準の二重引用符を使用していないことがわかりました"
公式Googleドキュメント からコピーして貼り付けたスクリプト内