この翻訳は不完全です。英語から この記事を翻訳 してください。

web-ext は、機能拡張の開発プロセスの多くを加速するために設計されたコマンドラインツールであり、開発を速く簡単にします。この記事では web-ext をインストールして使用する方法を説明します。

インストール

web-ext は nodejs/npm ツールからインストールできる node ベースのアプリです。下記のコマンドで web-ext をインストールします:

npm install --global web-ext

web-ext は NodeJS の最新の LTS (long term support) バージョンを要求します。

インストールできたかどうかは、web-ext のバージョン番号を表示する下記コマンドを実行してテストできます:

web-ext --version

web-ext を使ってみる

いったんインストールできたら、 web-ext をテストできます。ここでは、簡単な機能拡張を試してみるのがいいでしょう — 自作のものがない場合、我々の webextensions-examples リポジトリをクローンできます。

機能拡張をテストする

Firefox で機能拡張をテストするには機能拡張のルートディレクトリに cd(移動) して、下記コマンドを入力します:

web-ext run

これで Firefox が起動して機能拡張が一時的にブラウザーに読み込まれます。これはabout:debugging page でできるのと同じように。

利用できる全オプションについては 実行リファレンスガイドを見てください。

自動的な機能拡張リロード

run コマンドではソースファイルを監視して、編集・保存後に Firefox にリロードさせます。例えば、manifest.json ファイルの中の name プロパティを変更した場合、Firefox は新しい名前を表示します。これにより、新機能を試したり、その結果をすぐに見る事ができます。自動的なリロード機能は既定でオンになっていて、このように使えます:

web-ext run

web-ext ターミナルから r キーを押して、機能拡張を手動で読み込むようにもできます。

リロードした機能が期待していない振る舞いをしたら、バグを提出してください。次のようにリロードをオフにもできます:

web-ext run --no-reload

拡張機能のリロードは Firefox 49 以降のみでサポートされます。

色々なバージョンの Firefox でテストする

デフォルトバージョン以外の Firefox で機能拡張を実行するには --firefox オプションでバイナリーファイルのフルパスを指定します。Mac OS の例はこちら:

web-ext run --firefox=/Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin

Windows では、パスに firefox.exe の部分を入れる必要があります、例えば:

web-ext run --firefox="C:\Program Files\Mozilla Firefox\firefox.exe"

Firefox 48 でテストする

Firefox 48 は機能拡張プラットホームに使う最初の安定版ですが、リモートで web-ext による機能拡張のインストールが許可されていません。Firefox で機能拡張を実行するには、別のインストールオプションを付けます:

web-ext run --pre-install

署名なしの機能拡張をテストする

web-ext run を実行するとき、 機能拡張は Firefox を閉じるまで一時的にインストールされます。これは署名についての制限に違反しません。この代わりに web-ext build で Firefox にインストールする zip ファイルを作る場合、アドオンが署名されていないエラーが出るでしょう。署名なしの機能拡張をインストールするには unbranded builddevelopment build を使います。

カスタムプロフィールを使う

規定では、run コマンドは一時的な Firefox プロファイルを作成します。--firefox-profile オプションを使うと特定のプロファイルにて実行できます、次のように:

web-ext run --firefox-profile=your-custom-profile

このオプションはプロファイル名を含んだ文字列か、プロファイルディレクトリーの絶対パスを受け付けます。これは run コマンドでいつも使える設定を手動で調整したい場合に役立ちます。

プロフィールを変更する

run コマンドは --firefox-profile.で指定されたカスタムプロファイルへの変更は保存ません。保存しておくには、次のオプションを追加します:

web-ext run --keep-profile-changes --firefox-profile=your-custom-profile

拡張機能がいくつもの実行ステータスを持つ場合に役立ちます。

このオプションは --firefox-profile で指定されたプロファイルを、日常使用するには完全に危険なものにします。自動更新を切って、とりわけ、黙ってリモート接続を許可します。厳密には、 web-ext の操作で要求されるとプロファイルに破壊的変更を行います。

機能拡張をパックする

Once you've tested your extension and verified that it's working, you can turn it into a package for submitting to addons.mozilla.org using the following command:

web-ext build

This will output a full path to the generated .zip file that can be loaded into a browser.

The generated .zip file doesn't work on Firefox without signing it, or adding applications.gecko.id key into manifest.json.  For more information, please refer WebExtensions and the Add-on ID page.

web-ext build is designed to automatically ignore files that are commonly unwanted in packages, such as .git, node_modules, and other artifacts.

See the build reference guide to learn more.

配布のために機能拡張に署名する

As an alternative to publishing your extension on addons.mozilla.org, you can self-host your package file but it needs to be signed by Mozilla first. The following command packages and signs a ZIP file, then returns it as a signed XPI file for distribution:

web-ext sign --api-key=$AMO_JWT_ISSUER --api-secret=$AMO_JWT_SECRET 

The API options are required to specify your addons.mozilla.org credentials.

  • --api-key: the API key (JWT issuer) from addons.mozilla.org needed to sign the extension. This should always be a string.
  • --api-secret: the API secret (JWT secret) from addons.mozilla.org needed to sign the extension. This should always be a string.

See the sign reference guide to learn about all available options.

明示的な ID なしに機能拡張に署名する

web-ext fully supports signing extensions that do not declare the applications.gecko.id property in their manifest. The first time you sign an extension without an explicit ID, addons.mozilla.org will auto-generate an ID and web-ext will save it to .web-extension-id in the current working directory. You should save the ID file so that you can sign future versions of the same extension. If you lose the ID file, you will have to add back the applications.gecko.id property or use the --id option when signing future versions, for example:

web-ext sign --api-key=... --api-secret=... --id="{c23c69a7-f889-447c-9d6b-7694be8035bc}"

限定環境にて署名する

If you are working in an environment that restricts access to certain domains, you can try using a proxy when signing:

web-ext sign --api-key=... --api-secret=... --api-proxy=https://yourproxy:6000

See the --api-proxy to learn more.

If you simply need to allow the domains used for signing and downloading files, allow these:

  • addons.mozilla.org
  • addons.cdn.mozilla.net

コードの "lint" チェック

Before trying out your extension with the run command or submitting your package to addons.mozilla.org, you can use the lint command to make sure your manifest and other source files do not contain any errors. Example:

web-ext lint

This uses the addons-linter library to walk through your source code directory and report any errors, such as the declaration of an unknown permission.

See the lint reference guide to learn about all available options.

色々なソース・ディストネーションディレクトリーを指定する

The above commands all use default directories for the extension source and artifact creation (e.g. built .zip files). The defaults are:

  • Source: The directory you are currently inside.
  • Artifacts: A directory called ./web-ext-artifacts, created inside the current directory.

You can specify different source and destination directories using the --source-dir (or -s alias) and --artifacts-dir (or -a alias) options when running your commands. Their values can be relative or absolute paths, but must always be specified as strings. Here is an example of specifying both options at the same time when  building an extension:

web-ext build --source-dir=webextension-examples/notify-link-clicks-i18n --artifacts-dir=zips

冗長なメッセージを出力する

If you want to see exactly what web-ext is doing when you run a command, you can include the --verbose option (or the -v alias). For example:

web-ext build --verbose

全てのコマンドオプションを見る

You can list all commands and options like this:

web-ext --help

Note: You can also use the -h alias.

You can list options for a specific command by adding it as an argument:

web-ext --help run

一時的なインストールを検出する

Your extension can detect whether it was installed using "web-ext run" rather than as a built and signed extension downloaded from addons.mozilla.org. Listen for the runtime.onInstalled event, and check the value of details.temporary.

See also

ドキュメントのタグと貢献者

 このページの貢献者: kyokutyo, Uemmra3
 最終更新者: kyokutyo,