هذه أداة سطر أوامر للمساعدة في إنشاء WebExtensions وتشغيله واختباره.
في النهاية، يهدف إلى دعم ملحقات المتصفح بطريقة قياسية ومحمولة ومتعددة المنصات. في البداية، سيوفر تجربة مبسطة لتطوير ملحقات Firefox.
فيما يلي الأوامر التي يمكنك تشغيلها. انقر فوق كل منها للحصول على وثائق مفصلة أو استخدم --help
في سطر الأوامر، مثل web-ext build --help
.
run
lint
sign
build
docs
web-ext
في المتصفح أولاً، تأكد من أنك تقوم بتشغيل الإصدار الحالي LTS (الدعم طويل المدى) من NodeJS.
يمكنك تثبيت هذا الأمر على جهازك عالميًا باستخدام:
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
، تقوم حزمة 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();
} ) ;
إذا كنت ترغب في تشغيل ملحق على 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.
أهلاً! هذه الأداة قيد التطوير النشط. للمشاركة، يمكنك مشاهدة الريبو، أو تقديم مشكلات، أو إنشاء طلبات سحب، أو الاتصال بنا لطرح سؤال. اقرأ قسم المساهمة للتعرف على كيفية تطوير ميزات جديدة.
هذا سؤال رائع وسنطرحه على أنفسنا مع كل ميزة تحويلة ويب جديدة. يتم دمج معظم وظائف WebExtension في المتصفحات نفسها ولكن أداة سطر الأوامر المجانية ستظل مفيدة. فيما يلي قائمة جزئية من الأمثلة: