3

さまざまなアセット (CSS、JavaScript など) を共有する複数の Chrome アプリがありますが、構成ファイルはすべてアプリ フォルダーに配置する必要があるようです。アプリを完全に自己完結型にしたいので、これらのファイルをサーバーに置きたくありません。OS X エイリアスを試しましたが、Chrome システムは <script> 要素でそれらを認識しませんでした。

明らかに、これらのファイルの複数のコピーを維持したくありません。開発中に一部のファイルが頻繁に変更されるためです。

ファイルが変更されるたびに実行されるプリプロセッサを作成する以外のアイデアはありますか? フォルダーまたはそのサブフォルダーのいずれかにまだ含まれていないアセットをリストする files.json のような名前のファイルを使用します。

4

3 に答える 3

3

現在、1 つの拡張機能またはアプリが他の拡張機能のセットに依存できる「共有モジュール」を実験的にサポートしています。依存関係は、それらに依存するアプリ/拡張機能にロードできるファイルを提供するだけです。独自の権限や機能 (背景ページなど) を持つことはできません。共有モジュールに依存するアプリ/拡張機能のインストール時に、不足している依存関係を chrome ウェブストアから自動的にダウンロードしてインストールします。また、それらに依存するすべてのアプリ/拡張機能をアンインストールする場合は、後でそれらを削除します。

現在、この機能は chrome の開発チャンネルでのみ利用できますが、開発者からフィードバックを得る機会があれば、完全にサポートする予定です。試してみたい場合は、chrome dev channel (または canary)のコピーを入手してください。

共有したいファイルの単なるバンドルである拡張機能の manifest.json で:

{
  ...

  "export": {
    "resources": [ "foo.js", "bar.js" ]
  },

  ...
}

上記に依存する拡張機能/アプリの manifest.json で:

{
  ...

  "import": [{"id": "<id of dependency goes here>"}],

  ...
}

その他の例については、このコードレビューのテスト データ ファイルを参照してください。

https://codereview.chromium.org/13971005

(申し訳ありませんが、これについてはまだ適切なドキュメントがありません。最終的にはそうする予定です)

試してみて、extensions-dev@chromium.org または apps-dev@chromium.org にフィードバックを送ってください。

于 2013-10-08T20:00:11.120 に答える