私はクロム拡張を作成していて、create-react-appを使ってプロジェクトをブートストラップしました。create-react-appビルドでchrome storage APIを使用する
一般的な問題:
私は私のアプリを反応
固有の問題でchrome.storage
APIにアクセスしたい:
私は私の反応にchrome.storage APIを使用できるようにしたいですappにいくつかの設定を保存するように私のsrc
ディレクトリにスクリプトを作成しました。これはchrome.storage.sync.set()
を呼び出しました。 'chrome' is not defined no-undef
を取得しました。これは、マニフェストにこの呼び出しを行うスクリプトを含める必要があるためです。問題は、私のマニフェストにsrc
のこのスクリプトを含めることができないということです。なぜなら、create-react-appがプロジェクトをビルドした後に、src
が縮小され、ファイル構造がすべて変更されるからです。
もう1つの問題は、私がsrc
からインポートするcreate-reactions-app enforceですが、public
のデータが必要なため、public
から関数をインポートしてchrome API呼び出しを行うことはできません。私はcreate-react-appにeject機能があることを知っていますが、私はcreate-react-appが私に与えるビルド機能を維持したいと思います。
src
ディレクトリからchrome.storage APIにアクセスしているときに、create-react-appのビルド機能を維持するにはどうすればよいですか?
これは実際にはリンターエラーでした。タイプエラー:未定義のプロパティ 'sync'を読み取ることができません。私のマニフェストに「ストレージ」権限が含まれていることを確認しました **編集:** 興味深いことに、私のビルド環境にエラーはなく、データは正しく保存されているようですが、私の開発環境は私にタイプエラー? – Evan
@Evan 'chrome'変数は、chrome拡張機能として実行しているときにのみ定義されます。通常のWebページのように実行すると、 'chrome.storage'は定義されません。 (Chromeは 'chrome'オブジェクトを介して通常のWebページにいくつかのAPIを提供していますが)。 – Sidney
ありがとう! – Evan