Это инструмент командной строки, помогающий создавать, запускать и тестировать WebExtensions.
В конечном счете, он направлен на поддержку расширений браузера стандартным, переносимым и кроссплатформенным способом. Первоначально он обеспечит упрощенный процесс разработки расширений Firefox.
Вот команды, которые вы можете выполнить. Нажмите на каждый из них для получения подробной документации или используйте --help
в командной строке, например web-ext build --help
.
run
lint
sign
build
docs
web-ext
в браузере. Во-первых, убедитесь, что вы используете текущую версию NodeJS LTS (долгосрочная поддержка).
Вы можете установить эту команду на свой компьютер глобально с помощью:
npm install --global web-ext
Альтернативно вы можете установить эту команду как одну из devDependencies
вашего проекта. Этот метод может помочь вам контролировать версию 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
Вам понадобится:
По желанию вам может понравиться:
Если вы уже установили web-ext
из npm, возможно, вам придется сначала его удалить:
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 в командной строке, вы можете запустить web-ext
в коде NodeJS.
Начиная с версии 7.0.0
пакет npm web-ext
экспортирует только собственные ES-модули NodeJS. Если вы используете 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();
} ) ;
Если вы хотите запустить расширение в Firefox для 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 ) => { ... } ) ;
Если вы хотите контролировать ведение журнала, вы можете получить доступ к объекту журнала. Вот пример включения подробного журналирования:
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. Эта платформа стабилизировалась в Firefox 48, выпущенном в апреле 2016 года.
Привет! Этот инструмент находится в стадии активной разработки. Чтобы принять участие, вы можете просмотреть репозиторий, решить проблемы с файлами, создать запросы на включение или связаться с нами, чтобы задать вопрос. Прочтите раздел «Содействие», чтобы узнать, как разрабатывать новые функции.
Это отличный вопрос, который мы будем задавать себе по поводу каждой новой функции веб-ext. Большая часть функций WebExtension встроена в сами браузеры, но бесплатный инструмент командной строки по-прежнему будет полезен. Вот неполный список примеров: