Ini adalah alat baris perintah untuk membantu membangun, menjalankan, dan menguji WebExtensions.
Pada akhirnya, ini bertujuan untuk mendukung ekstensi browser dengan cara standar, portabel, dan lintas platform. Awalnya, ini akan memberikan pengalaman yang efisien untuk mengembangkan Ekstensi Firefox.
Berikut adalah perintah yang dapat Anda jalankan. Klik masing-masing untuk dokumentasi terperinci atau gunakan --help
pada baris perintah, seperti web-ext build --help
.
run
lint
sign
build
docs
web-ext
di browser Pertama, pastikan Anda menjalankan NodeJS versi LTS (dukungan jangka panjang) saat ini.
Anda dapat menginstal perintah ini ke mesin Anda secara global dengan:
npm install --global web-ext
Alternatifnya, Anda dapat menginstal perintah ini sebagai salah satu devDependencies
proyek Anda. Cara ini dapat membantu Anda mengontrol versi web-ext
seperti yang digunakan oleh tim Anda.
npm install --save-dev web-ext
Selanjutnya Anda dapat menggunakan perintah web-ext
di proyek Anda sebagai skrip npm. Berikut adalah contoh argumen --source-dir
yang menentukan lokasi menemukan kode sumber untuk ekstensi Anda.
package.json
"scripts" : {
"start:firefox" : " web-ext run --source-dir ./extension-dist/ " ,
}
Anda selalu dapat meneruskan perintah tambahan ke skrip npm Anda menggunakan akhiran --
. Misalnya, skrip sebelumnya dapat menentukan versi Firefox pada baris perintah dengan ini:
npm run start:firefox -- --firefox=nightly
Komunitas mempertahankan formula web-ext
.
brew install web-ext
Anda membutuhkan:
Secara opsional, Anda mungkin menyukai:
Jika Anda sudah menginstal web-ext
dari npm, Anda mungkin perlu menghapus instalasinya terlebih dahulu:
npm uninstall --global web-ext
Ubah ke sumber dan instal semua dependensi:
git clone https://github.com/mozilla/web-ext.git
cd web-ext
npm ci
Bangun perintah:
npm run build
Tautkan ke instalasi node Anda:
npm link
Anda sekarang dapat menjalankannya dari direktori mana pun:
web-ext --help
Untuk mendapatkan pembaruan, cukup tarik perubahan dan buat kembali file yang dapat dieksekusi. Anda tidak perlu menautkannya kembali.
cd /path/to/web-ext
git pull
npm run build
Catatan: Dukungan untuk API ini terbatas.
Selain menggunakan web-ext pada baris perintah, Anda mungkin ingin menjalankan web-ext
dalam kode NodeJS.
Pada versi 7.0.0
, paket web-ext
npm hanya mengekspor modul ES asli NodeJS. Jika Anda menggunakan CommonJS, Anda harus menggunakan impor dinamis.
Anda dapat menjalankan fungsi perintah tanpa validasi argumen apa pun. Jika Anda ingin menjalankan web-ext run
Anda akan melakukannya seperti ini:
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();
} ) ;
Jika Anda ingin menjalankan ekstensi di Firefox untuk 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 ) => { ... } ) ;
Jika Anda ingin mengontrol logging, Anda dapat mengakses objek logger. Berikut ini contoh mengaktifkan logging verbose:
import * as webExtLogger from 'web-ext/util/logger' ;
webExtLogger . consoleStream . makeVerbose ( ) ;
webExt . cmd . run ( { sourceDir : './src' } , { shouldExitProgram : false } ) ;
Anda juga dapat menonaktifkan penggunaan input standar:
webExt . cmd . run ( { noInput : true } , { shouldExitProgram : false } ) ;
web-ext
dirancang untuk WebExtensions tetapi Anda dapat mencoba menonaktifkan validasi manifes agar berfungsi dengan ekstensi lama. Ini tidak didukung secara resmi.
webExt . cmd . run (
{ sourceDir : './src' } ,
{
getValidatedManifest : ( ) => ( {
name : 'some-fake-name' ,
version : '1.0.0' ,
} ) ,
shouldExitProgram : false ,
} ,
) ;
Ya! Alat web-ext memungkinkan Anda membuat dan mengirimkan ekstensi untuk Firefox. Platform ini distabilkan di Firefox 48 yang dirilis pada bulan April 2016.
Hai! Alat ini sedang dalam pengembangan aktif. Untuk terlibat, Anda dapat melihat repo, mengajukan masalah, membuat permintaan penarikan, atau menghubungi kami untuk mengajukan pertanyaan. Baca bagian kontribusi untuk mengetahui cara mengembangkan fitur baru.
Ini adalah pertanyaan bagus dan akan kami tanyakan pada diri kami sendiri untuk setiap fitur web-ext baru. Sebagian besar fungsionalitas WebExtension dimasukkan ke dalam browser itu sendiri, tetapi alat baris perintah gratis akan tetap membantu. Berikut ini sebagian daftar contohnya: