Esta es una herramienta de línea de comandos para ayudar a crear, ejecutar y probar WebExtensions.
En última instancia, su objetivo es admitir extensiones de navegador de forma estándar, portátil y multiplataforma. Inicialmente, proporcionará una experiencia optimizada para desarrollar extensiones de Firefox.
Estos son los comandos que puede ejecutar. Haga clic en cada uno para obtener documentación detallada o utilice --help
en la línea de comando, como web-ext build --help
.
run
lint
sign
build
docs
web-ext
en un navegador. Primero, asegúrese de estar ejecutando la versión LTS (soporte a largo plazo) actual de NodeJS.
Puede instalar este comando en su máquina globalmente con:
npm install --global web-ext
Alternativamente, puede instalar este comando como una de las devDependencies
de su proyecto. Este método puede ayudarle a controlar la versión de web-ext
utilizada por su equipo.
npm install --save-dev web-ext
A continuación, puede utilizar el comando web-ext
en su proyecto como un script npm. A continuación se muestra un ejemplo en el que el argumento --source-dir
especifica dónde encontrar el código fuente de su extensión.
package.json
"scripts" : {
"start:firefox" : " web-ext run --source-dir ./extension-dist/ " ,
}
Siempre puedes pasar comandos adicionales a tus scripts npm usando el sufijo --
. Por ejemplo, el script anterior podría especificar la versión de Firefox en la línea de comando con esto:
npm run start:firefox -- --firefox=nightly
La comunidad mantiene una fórmula web-ext
.
brew install web-ext
Necesitarás:
Opcionalmente te puede gustar:
Si ya instaló web-ext
desde npm, es posible que primero deba desinstalarlo:
npm uninstall --global web-ext
Cambie a la fuente e instale todas las dependencias:
git clone https://github.com/mozilla/web-ext.git
cd web-ext
npm ci
Construya el comando:
npm run build
Vincúlelo a la instalación de su nodo:
npm link
Ahora puedes ejecutarlo desde cualquier directorio:
web-ext --help
Para obtener actualizaciones, simplemente realice los cambios y reconstruya el ejecutable. No es necesario volver a vincularlo.
cd /path/to/web-ext
git pull
npm run build
Nota: La compatibilidad con esta API es limitada.
Además de utilizar web-ext en la línea de comando, es posible que desee ejecutar web-ext
en código NodeJS.
A partir de la versión 7.0.0
, el paquete web-ext
npm exporta únicamente módulos ES nativos de NodeJS. Si está utilizando CommonJS, deberá utilizar importaciones dinámicas.
Puede ejecutar funciones de comando sin ninguna validación de argumentos. Si desea ejecutar web-ext run
deberá hacerlo así:
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();
} ) ;
Si desea ejecutar una extensión en Firefox para Android:
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 ) => { ... } ) ;
Si desea controlar el registro, puede acceder al objeto registrador. A continuación se muestra un ejemplo de cómo activar el registro detallado:
import * as webExtLogger from 'web-ext/util/logger' ;
webExtLogger . consoleStream . makeVerbose ( ) ;
webExt . cmd . run ( { sourceDir : './src' } , { shouldExitProgram : false } ) ;
También puede desactivar el uso de la entrada estándar:
webExt . cmd . run ( { noInput : true } , { shouldExitProgram : false } ) ;
web-ext
está diseñado para WebExtensions, pero puede intentar deshabilitar la validación del manifiesto para trabajar con extensiones heredadas. Esto no cuenta con soporte oficial.
webExt . cmd . run (
{ sourceDir : './src' } ,
{
getValidatedManifest : ( ) => ( {
name : 'some-fake-name' ,
version : '1.0.0' ,
} ) ,
shouldExitProgram : false ,
} ,
) ;
¡Sí! La herramienta web-ext le permite crear y enviar extensiones para Firefox. Esta plataforma se estabilizó en Firefox 48, que se lanzó en abril de 2016.
¡Hola! Esta herramienta está en desarrollo activo. Para participar, puede ver el repositorio, presentar problemas, crear solicitudes de extracción o contactarnos para hacer una pregunta. Lea la sección de contribuciones para saber cómo desarrollar nuevas funciones.
Esta es una gran pregunta que nos haremos para cada nueva función de extensión web. La mayor parte de la funcionalidad de WebExtension está integrada en los propios navegadores, pero una herramienta de línea de comandos complementaria seguirá siendo útil. Aquí hay una lista parcial de ejemplos: