Dies ist ein Befehlszeilentool, das beim Erstellen, Ausführen und Testen von WebExtensions hilft.
Letztendlich zielt es darauf ab, Browsererweiterungen auf standardisierte, portable und plattformübergreifende Weise zu unterstützen. Zunächst wird es eine optimierte Erfahrung für die Entwicklung von Firefox-Erweiterungen bieten.
Hier sind die Befehle, die Sie ausführen können. Klicken Sie auf die einzelnen Elemente, um eine detaillierte Dokumentation anzuzeigen, oder verwenden Sie --help
in der Befehlszeile, z. B. web-ext build --help
.
run
lint
sign
build
docs
web-ext
Dokumentation in einem Browser Stellen Sie zunächst sicher, dass Sie die aktuelle LTS-Version (Langzeitunterstützung) von NodeJS ausführen.
Sie können diesen Befehl global auf Ihrem Computer installieren mit:
npm install --global web-ext
Alternativ können Sie diesen Befehl als eine der devDependencies
Ihres Projekts installieren. Mit dieser Methode können Sie die von Ihrem Team verwendete web-ext
-Version steuern.
npm install --save-dev web-ext
Als nächstes können Sie den Befehl web-ext
in Ihrem Projekt als npm-Skript verwenden. Hier ist ein Beispiel, bei dem das Argument --source-dir
angibt, wo sich der Quellcode für Ihre Erweiterung befindet.
package.json
"scripts" : {
"start:firefox" : " web-ext run --source-dir ./extension-dist/ " ,
}
Sie können jederzeit zusätzliche Befehle an Ihre npm-Skripte übergeben, indem Sie das Suffix --
verwenden. Das vorherige Skript könnte beispielsweise die Firefox-Version folgendermaßen in der Befehlszeile angeben:
npm run start:firefox -- --firefox=nightly
Die Community unterhält eine web-ext
-Formel.
brew install web-ext
Sie benötigen:
Optional könnte Ihnen Folgendes gefallen:
Wenn Sie web-ext
bereits von npm installiert haben, müssen Sie es möglicherweise zuerst deinstallieren:
npm uninstall --global web-ext
Wechseln Sie in die Quelle und installieren Sie alle Abhängigkeiten:
git clone https://github.com/mozilla/web-ext.git
cd web-ext
npm ci
Erstellen Sie den Befehl:
npm run build
Verknüpfen Sie es mit Ihrer Knoteninstallation:
npm link
Sie können es jetzt von jedem Verzeichnis aus ausführen:
web-ext --help
Um Updates zu erhalten, ziehen Sie einfach die Änderungen ab und erstellen Sie die ausführbare Datei neu. Sie müssen es nicht erneut verknüpfen.
cd /path/to/web-ext
git pull
npm run build
Hinweis: Für diese API gibt es begrenzte Unterstützung.
Abgesehen von der Verwendung von web-ext in der Befehlszeile möchten Sie möglicherweise web-ext
im NodeJS-Code ausführen.
Ab Version 7.0.0
exportiert das web-ext
npm-Paket nur native NodeJS-ES-Module. Wenn Sie CommonJS verwenden, müssen Sie dynamische Importe verwenden.
Sie können Befehlsfunktionen ohne Argumentvalidierung ausführen. Wenn Sie web-ext run
ausführen möchten, gehen Sie folgendermaßen vor:
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();
} ) ;
Wenn Sie eine Erweiterung auf Firefox für Android ausführen möchten:
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 ) => { ... } ) ;
Wenn Sie die Protokollierung steuern möchten, können Sie auf das Logger-Objekt zugreifen. Hier ist ein Beispiel für die Aktivierung der ausführlichen Protokollierung:
import * as webExtLogger from 'web-ext/util/logger' ;
webExtLogger . consoleStream . makeVerbose ( ) ;
webExt . cmd . run ( { sourceDir : './src' } , { shouldExitProgram : false } ) ;
Sie können die Verwendung der Standardeingabe auch deaktivieren:
webExt . cmd . run ( { noInput : true } , { shouldExitProgram : false } ) ;
web-ext
ist für WebExtensions konzipiert, Sie können jedoch versuchen, die Manifestvalidierung zu deaktivieren, um mit älteren Erweiterungen zu arbeiten. Dies wird offiziell nicht unterstützt.
webExt . cmd . run (
{ sourceDir : './src' } ,
{
getValidatedManifest : ( ) => ( {
name : 'some-fake-name' ,
version : '1.0.0' ,
} ) ,
shouldExitProgram : false ,
} ,
) ;
Ja! Mit dem Web-Ext-Tool können Sie Erweiterungen für Firefox erstellen und versenden. Diese Plattform wurde in Firefox 48 stabilisiert, der im April 2016 veröffentlicht wurde.
Hallo! Dieses Tool befindet sich in aktiver Entwicklung. Um mitzumachen, können Sie sich das Repo ansehen, Probleme einreichen, Pull Requests erstellen oder uns kontaktieren, um eine Frage zu stellen. Lesen Sie den Beitragsabschnitt, um zu erfahren, wie Sie neue Funktionen entwickeln.
Das ist eine großartige Frage, die wir uns bei jeder neuen Web-Ext-Funktion stellen werden. Die meisten WebExtension-Funktionen sind in die Browser selbst integriert, ein kostenloses Befehlszeilentool ist jedoch dennoch hilfreich. Hier ist eine unvollständige Liste von Beispielen: