이는 WebExtensions를 구축, 실행 및 테스트하는 데 도움이 되는 명령줄 도구입니다.
궁극적으로 표준적이고 이식 가능한 크로스 플랫폼 방식으로 브라우저 확장을 지원하는 것을 목표로 합니다. 처음에는 Firefox 확장 개발을 위한 간소화된 경험을 제공할 것입니다.
실행할 수 있는 명령은 다음과 같습니다. 자세한 문서를 보려면 각 항목을 클릭하거나 web-ext build --help
와 같은 명령줄에서 --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
다음이 필요합니다.
선택적으로 다음을 원할 수도 있습니다.
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에서 안정화되었습니다.
안녕! 이 도구는 활발하게 개발 중입니다. 참여하려면 리포지토리를 보고, 문제를 제출하고, 끌어오기 요청을 생성하거나, 당사에 문의하여 질문할 수 있습니다. 새로운 기능을 개발하는 방법에 대한 기여 섹션을 읽어보세요.
이것은 훌륭한 질문이며 각각의 새로운 웹 확장 기능에 대해 스스로에게 물어볼 질문입니다. 대부분의 WebExtension 기능은 브라우저 자체에 내장되어 있지만 무료 명령줄 도구도 여전히 도움이 될 것입니다. 다음은 예시의 일부 목록입니다.