これは、WebExtensions の構築、実行、テストに役立つコマンド ライン ツールです。
最終的には、標準的でポータブルなクロスプラットフォームの方法でブラウザ拡張機能をサポートすることを目指しています。当初は、Firefox 拡張機能を開発するための効率的なエクスペリエンスが提供されます。
実行できるコマンドは次のとおりです。それぞれをクリックして詳細なドキュメントを表示するか、コマンド ラインで--help
web-ext build --help
など) を使用します。
run
lint
sign
build
docs
web-ext
ドキュメントを開くまず、NodeJS の現在の LTS (長期サポート) バージョンを実行していることを確認します。
次のコマンドを使用して、このコマンドをマシンにグローバルにインストールできます。
npm install --global web-ext
あるいは、このコマンドをプロジェクトのdevDependencies
の 1 つとしてインストールすることもできます。この方法は、チームが使用するweb-ext
のバージョンを制御するのに役立ちます。
npm install --save-dev web-ext
次に、プロジェクト内でweb-ext
コマンドを npm スクリプトとして使用できます。以下は、 --source-dir
引数で拡張機能のソース コードを見つける場所を指定する例です。
package.json
"scripts" : {
"start:firefox" : " web-ext run --source-dir ./extension-dist/ " ,
}
--
接尾辞を使用すると、いつでも追加のコマンドを npm スクリプトに渡すことができます。たとえば、前のスクリプトでは、次のようにコマンド ラインで Firefox のバージョンを指定できます。
npm run start:firefox -- --firefox=nightly
コミュニティはweb-ext
方式を維持しています。
brew install web-ext
必要なものは次のとおりです。
必要に応じて、次のようなものもお勧めします。
npm からweb-ext
をすでにインストールしている場合は、最初にそれをアンインストールする必要がある場合があります。
npm uninstall --global web-ext
ソースに変更して、すべての依存関係をインストールします。
git clone https://github.com/mozilla/web-ext.git
cd web-ext
npm ci
コマンドを構築します。
npm run build
それをノードのインストールにリンクします。
npm link
これで、任意のディレクトリから実行できるようになりました。
web-ext --help
更新を取得するには、変更をプルして実行可能ファイルをリビルドするだけです。再リンクする必要はありません。
cd /path/to/web-ext
git pull
npm run build
注:この API のサポートは限定されています。
コマンドラインで web-ext を使用する以外に、NodeJS コードでweb-ext
実行することもできます。
バージョン7.0.0
では、 web-ext
npm パッケージは NodeJS ネイティブ ES モジュールのみをエクスポートします。 CommonJS を使用している場合は、動的インポートを使用する必要があります。
引数の検証を行わずにコマンド関数を実行できます。 web-ext run
を実行したい場合は、次のように実行します。
import webExt from 'web-ext' ;
webExt . cmd
. run (
{
// These are command options derived from their CLI conterpart.
// In this example, --source-dir is specified as sourceDir.
firefox : '/path/to/Firefox-executable' ,
sourceDir : '/path/to/your/extension/source/' ,
} ,
{
// These are non CLI related options for each function.
// You need to specify this one so that your NodeJS application
// can continue running after web-ext is finished.
shouldExitProgram : false ,
} ,
)
. then ( ( extensionRunner ) => {
// The command has finished. Each command resolves its
// promise with a different value.
console . log ( extensionRunner ) ;
// You can do a few things like:
// extensionRunner.reloadAllExtensions();
// extensionRunner.exit();
} ) ;
Android 版 Firefox で拡張機能を実行したい場合:
import * as adbUtils from "web-ext/util/adb" ;
// Path to adb binary (optional parameter, auto-detected if missing)
const adbBin = "/path/to/adb" ;
// Get an array of device ids (Array<string>)
const deviceIds = await adbUtils . listADBDevices ( adbBin ) ;
const adbDevice = ...
// Get an array of Firefox APKs (Array<string>)
const firefoxAPKs = await adbUtils . listADBFirefoxAPKs (
deviceId , adbBin
) ;
const firefoxApk = ...
webExt . cmd . run ( {
target : 'firefox-android' ,
firefoxApk ,
adbDevice ,
sourceDir : ...
} ) . then ( ( extensionRunner ) => { ... } ) ;
ロギングを制御したい場合は、ロガー オブジェクトにアクセスできます。詳細ログを有効にする例を次に示します。
import * as webExtLogger from 'web-ext/util/logger' ;
webExtLogger . consoleStream . makeVerbose ( ) ;
webExt . cmd . run ( { sourceDir : './src' } , { shouldExitProgram : false } ) ;
標準入力の使用を無効にすることもできます。
webExt . cmd . run ( { noInput : true } , { shouldExitProgram : false } ) ;
web-ext
WebExtensions 用に設計されていますが、マニフェスト検証を無効にして従来の拡張機能を使用できるようにすることができます。これは正式にはサポートされていません。
webExt . cmd . run (
{ sourceDir : './src' } ,
{
getValidatedManifest : ( ) => ( {
name : 'some-fake-name' ,
version : '1.0.0' ,
} ) ,
shouldExitProgram : false ,
} ,
) ;
はい! Web-ext ツールを使用すると、Firefox の拡張機能を構築して配布できます。このプラットフォームは、2016 年 4 月にリリースされた Firefox 48 で安定しました。
こんにちは!このツールは現在鋭意開発中です。参加するには、リポジトリを観察したり、問題をファイルしたり、プル リクエストを作成したり、問い合わせて質問したりすることができます。新しい機能の開発方法については、貢献セクションをお読みください。
これは素晴らしい質問であり、新しい Web-ext 機能が登場するたびに私たち自身に問いかけることになるでしょう。 WebExtension の機能のほとんどはブラウザ自体に組み込まれていますが、無料のコマンド ライン ツールも役立ちます。以下に例の部分的なリストを示します。