الفرق بين المراجعتين لصفحة: «Cordova/cli»
لا ملخص تعديل |
تحديث |
||
(8 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude> | <noinclude>{{DISPLAYTITLE:واجهة سطر الأوامر في كوردوفا}}</noinclude> | ||
[[تصنيف: Cordova]] | [[تصنيف: Cordova]] | ||
يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها. | يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها. | ||
الصيغة العامة لأوامر واجهة سطر الأوامر هي بالشكل التالي: | |||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova <command> [options] -- [platformOpts]</syntaxhighlight> | ||
== لائحة الأوامر العامة == | == لائحة الأوامر العامة == | ||
يمكن استخدام | يمكن استخدام الأوامر التالية في أي وقت. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الأمر | !الأمر | ||
سطر 20: | سطر 19: | ||
|- | |- | ||
|<code>telemetry</code> | |<code>telemetry</code> | ||
|تفعيل مجموعة القياس (telemetry collection) أو إيقافها | |تفعيل مجموعة القياس (telemetry collection) أو إيقافها. | ||
|- | |- | ||
|<code>config</code> | |<code>config</code> | ||
|تعيين، | |تعيين، وجلب، وحذف، وتعديل وسرد قائمة الخيارات العامة لكوردوفا. | ||
|} | |} | ||
== لائحة أوامر المشروع == | == لائحة أوامر المشروع == | ||
تُدعَم الأوامر التالية عندما يكون مجلد العمل الحالي مشروعًا صالحًا. | |||
{| class="wikitable" | {| class="wikitable" | ||
!الأمر | !الأمر | ||
سطر 33: | سطر 32: | ||
|- | |- | ||
|<code>info</code> | |<code>info</code> | ||
|يولد هذا الأمر معلومات عن المشروع | |يولد هذا الأمر معلومات عن المشروع. | ||
|- | |- | ||
|<code>requirements</code> | |<code>requirements</code> | ||
|يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة | |يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة. | ||
|- | |- | ||
|<code>platform</code> | |<code>platform</code> | ||
|إدارة منصات | |إدارة منصات المشروع. | ||
|- | |- | ||
|<code>plugin</code> | |<code>plugin</code> | ||
|إدارة إضافات المشروع | |إدارة إضافات المشروع. | ||
|- | |- | ||
|<code>prepare</code> | |<code>prepare</code> | ||
|نسخ الملفات في المنصة (أو المنصات) لأجل البناء | |نسخ الملفات في المنصة (أو المنصات) لأجل البناء. | ||
|- | |- | ||
|<code>compile</code> | |<code>compile</code> | ||
|بناء المنصة (ات) | |بناء المنصة(ات). | ||
|- | |- | ||
|<code>clean</code> | |<code>clean</code> | ||
|تنظيف المشروع من آثار البناء | |تنظيف المشروع من آثار البناء. | ||
|- | |- | ||
|<code>run</code> | |<code>run</code> | ||
|تشغيل المشروع (بما في ذلك prepare | |تشغيل المشروع (بما في ذلك التحضير <code>prepare</code> والتصريف <code>compile</code>). | ||
|- | |- | ||
|<code>serve</code> | |<code>serve</code> | ||
|تشغيل المشروع مع خادم ويب محلي (بما في ذلك prepare) | |تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير <code>prepare</code>). | ||
|} | |} | ||
== خيارات شائعة == | == خيارات شائعة == | ||
تنطبق | تنطبق الخيارات التالية على جميع أوامر واجهة سطر الأوامر في كوردوفا. | ||
{| class="wikitable" | {| class="wikitable" | ||
!الأمر | !الأمر | ||
!الشرح | !الشرح | ||
|- | |- | ||
|-d | |<code>-d</code> أو <code> --verbose</code> | ||
| | |يظهر معلومات أكثر تفصيلًا على الصدفة (shell). يمكنك أيضًا الاشتراك في الحدثين <code>log</code> و <code>warn</code> إذا كنت تستخدم <code>cordova-cli</code> كوحدة عقدية (node module) عبر استدعاء <code>cordova.on('log', function() {})</code> أو <code>cordova.on('warn', function() {})</code>. | ||
|- | |- | ||
|-v أو --version | |<code>-v أو --version</code> | ||
|طباعة إصدار <code>cordova-cli</code> المثبت. | |طباعة إصدار <code>cordova-cli</code> المثبت. | ||
|- | |- | ||
|< | |<code>--no-update-notifier</code> | ||
|سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك | |سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلًا من ذلك إضافة التعبير <code>"optOut": true</code> إلى الملف <code>~/.config/configstore/update-notifier-cordova.json</code> أو تعيين متغير البيئة <code>NO_UPDATE_NOTIFIER</code> إلى أية قيمة (انظر التفاصيل في [https://www.npmjs.com/package/update-notifier#user-settings توثيق update-notifier]). | ||
|- | |- | ||
|< | |<code>--nohooks</code> | ||
|منع تنفيذ الخطافات (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل) | |منع تنفيذ [[Cordova/hooks|الخطافات]] (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل). | ||
|- | |- | ||
|< | |<code>--no-telemetry</code> | ||
|تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي. | |تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي. | ||
|} | |} | ||
سطر 84: | سطر 83: | ||
== خيارات مخصوصة بالمنصات (Platform-specific options) == | == خيارات مخصوصة بالمنصات (Platform-specific options) == | ||
بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر مع الفاصل "<code>--</code>"، والذي يوقف تحليل (parsing) الأمر في الوحدة <code>cordova-lib</code> ويُمرر باقي الخيارات للمنصات لأجل تحليلها. | بعض الأوامر لها خيارات (<code>platformOpts</code>) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر مع الفاصل "<code>--</code>"، والذي يوقف تحليل (parsing) الأمر في الوحدة <code>cordova-lib</code> ويُمرر باقي الخيارات للمنصات لأجل تحليلها. | ||
* | * | ||
يوضح | يوضح المثال التالي كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع إضافة [[Cordova/cordova plugin camera|الكاميرا]] وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار <code>--keystore</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell"># إنشاء مشروع كوردوفا | ||
cordova create myApp com.myCompany.myApp myApp | cordova create myApp com.myCompany.myApp myApp | ||
cd myApp | cd myApp | ||
سطر 98: | سطر 95: | ||
# config.xml و package.json | # config.xml و package.json | ||
cordova platform add android | cordova platform add android | ||
# يتحقق هذا الأمر مما إذا كان النظام | # يتحقق هذا الأمر مما إذا كان النظام مُعدًا لبناء منصة أندرويد | ||
cordova requirements android | cordova requirements android | ||
# يبني أندرويد ويحذف المخرجات الزائدة | # يبني أندرويد ويحذف المخرجات الزائدة | ||
سطر 107: | سطر 104: | ||
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey</syntaxhighlight> | cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey</syntaxhighlight> | ||
== الأمر cordova create == | == الأمر <code>cordova create</code> == | ||
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد. | ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova create path [id [name [config]]] [options]</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
! | !القيمة | ||
!الشرح | !الشرح | ||
|- | |- | ||
|<code>path</code> | |<code>path</code> | ||
|تنشئ | |تنشئ مجلدًا، ويُشترط ألا يكون موجودًا مسبقًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه. | ||
|- | |- | ||
|<code>id</code> | |<code>id</code> | ||
|القيمة الافتراضية: <code>io.cordova.hellocordova</code> | |القيمة الافتراضية: <code>io.cordova.hellocordova</code> | ||
يمثِّل مُعرِّفًا لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية <code>id</code> في العنصر <code>[[Cordova/config ref#widget|widget]]</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذه القيمة، ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء حزم [[Java|جافا]]. لذا يوصى بتحديد قيمة مناسبة. | |||
|- | |- | ||
|<code>name</code> | |<code>name</code> | ||
|القيمة الافتراضية: <code>HelloCordova</code> | |القيمة الافتراضية: <code>HelloCordova</code> | ||
عنوان العرض الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>config.xml</code>. يمكن تغيير هذا ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه | عنوان العرض (display title) الخاص بالتطبيق، والذي يرتبط بالعنصر <code>name</code> في الملف <code>[[Cordova/config ref|config.xml]]</code>. يمكن تغيير هذا ولكن تذكر أن بعض الشيفرات البرمجية المُولّدة ستستخدم هذه القيمة، مثل أسماء أصناف [[Java|جافا]]. القيمة الافتراضية هي <code>HelloCordova</code>، ولكن يوصى بتحديد قيمة مناسبة. | ||
|- | |- | ||
|<code>config</code> | |<code>config</code> | ||
|سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف <code><path></code>/.cordova/config.json | |سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف <code><path></code>/.cordova/config.json. | ||
|} | |} | ||
=== | ===الخيارات التي يمكن استعمالها=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!الأمر | !الأمر | ||
سطر 148: | سطر 142: | ||
|رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه. | |رابط رمزي (Symlink) يشير إلى المجلد <code>www</code> المحدد دون إنشاء نسخة منه. | ||
|} | |} | ||
=== بنية | === بنية مجلد المشروع === | ||
تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية: | تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="text">myapp/ | ||
|-- config.xml | |-- config.xml | ||
|-- hooks/ | |-- hooks/ | ||
سطر 164: | سطر 158: | ||
| |-- ios/ | | |-- ios/ | ||
|-- plugins/ | |-- plugins/ | ||
|--cordova-plugin-camera/ | |--cordova-plugin-camera/ | ||
==== الملف Config.xml ==== | </syntaxhighlight> | ||
==== الملف <code>Config.xml</code> ==== | |||
يحتوي هذا الملف على إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر [[Cordova/config ref|توثيق الملف Config.xml]]. | |||
====المجلد <code>www</code>==== | |||
يحتوي | يحتوي المجلد <code>www/</code> على أصول الويب (web artifacts) الخاصة بالمشروع، مثل ملفات [[HTML|html.]] و [[CSS|cs.]] و [[JavaScript|js.]] كمطور لتطبيقات كوردوفا، فإنَّ معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر <code>cordova prepare</code> إلى المجلد <code>www</code> الخاص بكل منصة على حدة. ويعاد إنتاج المجلد المصدري <code>www</code> داخل المجلد الفرعي لكل منصة، مثلًا في المجلدين <code>platforms/ios/www</code> أو <code>platforms/android/assets/www</code>. | ||
نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري <code>www</code>، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليك إضافة المجلد المصدري <code>www</code> جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات. | |||
====<code> | ====المجلد <code>platforms</code>==== | ||
يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك. | يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك. | ||
'''ملاحظة:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد <code>/platform/</code>، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق | '''ملاحظة:''' عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد <code>/platform/</code>، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق يسمح بذلك. الملفات الموجودة في هذا المجلد ستستبدل (overwritten) باستمرار عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات. | ||
====<code> | ====المجلد <code>plugins</code>==== | ||
الإضافات التي أُضيفت | الإضافات التي أُضيفت للمشروع ستُستخلص أو تُتسخ في هذا المجلد. | ||
====<code>hooks</code> | ====المجلد <code>hooks</code>==== | ||
قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات. | قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات. | ||
راجع | راجع صفحة [[Cordova/hooks|الخطافات]] لمزيد من المعلومات. | ||
====<code> | ====المجلد <code>merges</code>==== | ||
يتم تضمين أصول الويب الخاصة بالمنصة (ملفات HTML و CSS و[[JavaScript| | يتم تضمين أصول الويب الخاصة بالمنصة (ملفات [[HTML]] و [[CSS]] و [[JavaScript|JavaScript]]) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر <code>prepare</code> إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد <code>merges/</code> محل الملفات المطابقة في المجلد <code>www/</code> الخاص بالمنصة المعنية. | ||
المثال التالي يفترض هيكل المشروع التالي: | المثال التالي يفترض هيكل المشروع التالي: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="text">merges/ | ||
|-- ios/ | |-- ios/ | ||
| -- app.js | | -- app.js | ||
سطر 197: | سطر 194: | ||
-- app.js</syntaxhighlight> | -- app.js</syntaxhighlight> | ||
بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين <code>app.js</code> و <code>android.js</code>. أما تطبيق iOS فلن يحتوي إلا على الملف <code>app.js</code> | بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين <code>app.js</code> و <code>android.js</code>. أما تطبيق iOS فلن يحتوي إلا على الملف <code>app.js</code> الموجود في المسار <code>merges/ios/app.js</code>، وسيستبدل (override) الملف <code>app.js</code> الموجود في المجلد <code>www/</code>. | ||
===== إداة الإصدارات ===== | ===== إداة الإصدارات ===== | ||
من المستحسن عدم إدراج المجلدين <code>platforms/</code> و <code>plugins/</code> في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. | من المستحسن عدم إدراج المجلدين <code>platforms/</code> و <code>plugins/</code> في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. ستُحفَظ المنصة والإضافة خاصتك في الملفين <code>config.xml</code> و <code>package.json</code> تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر <code>cordova prepare</code>. | ||
===أمثلة=== | === أمثلة === | ||
* | * | ||
* إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين: | * إنشاء مشروع كوردوفا في المجلد <code>myapp</code> باستخدام المعرّف واسم العرض المحددين: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova create myapp com.mycompany.myteam.myapp MyApp</syntaxhighlight> | ||
* إنشاء مشروع كوردوفا مع | * إنشاء مشروع كوردوفا مع وصلة رمزي (symlink) إلى مجلد <code>www</code> موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو إن كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova create myapp --link-to=../www</syntaxhighlight> | ||
== الأمر <code>platform command</code> == | |||
يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها. | يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها. | ||
تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع. | تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova {platform | platforms} [ | ||
add <platform-spec> [...] {--save | link=<path> } | | add <platform-spec> [...] {--save | link=<path> } | | ||
{remove | rm} platform [...] {--save}| | {remove | rm} platform [...] {--save}| | ||
سطر 232: | سطر 226: | ||
|<code>add <platform-spec> [...]</code> | |<code>add <platform-spec> [...]</code> | ||
| | | | ||
|إضافة منصات محددة | |إضافة منصات محددة. | ||
|- | |- | ||
| | | | ||
|<code>--nosave</code> | |<code>--nosave</code> | ||
|عدم حفظ <code><platform-spec></code> في الملفين | |عدم حفظ <code><platform-spec></code> في الملفين [[Cordova/config ref|config.xml]] و package.json بعد تثبيتها باستخدام الوسم <code><engine></code>. | ||
|- | |- | ||
| | | | ||
|<code>--link=<path></code> | |<code>--link=<path></code> | ||
| | |عندما يكون <code><platform-spec></code> مسارًا محليًا، فسينشئ هذا الأمر الفرعي رابطًا لمكتبة المنصة مباشرةً بدلًامن إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة). | ||
عندما يكون <code><platform-spec></code> | |||
|- | |- | ||
|<code>remove <platform>[...]</code> | |<code>remove <platform>[...]</code> | ||
| | | | ||
|إزالة المنصات المحددة | |إزالة المنصات المحددة. | ||
|- | |- | ||
| | | | ||
|<code>--nosave</code> | |<code>--nosave</code> | ||
|عدم حذف المنصات المحددة من الملفين | |عدم حذف المنصات المحددة من الملفين [[Cordova/config ref|config.xml]] و package.json بعد إزالتها. | ||
|- | |- | ||
|<code>update platform[...]</code> | |<code>update platform[...]</code> | ||
| | | | ||
|تحديث المنصات المحددة | |تحديث المنصات المحددة. | ||
|- | |- | ||
| | | | ||
|<code>--save</code> | |<code>--save</code> | ||
|تحديث الإصدار المحدد في الملف | |تحديث الإصدار المحدد في الملف [[Cordova/config ref|config.xml]]. | ||
|- | |- | ||
|<code>list</code> | |<code>list</code> | ||
| | | | ||
|سرد جميع المنصات المثبتة والمتاحة في | |سرد جميع المنصات المثبتة والمتاحة في قائمة. | ||
|- | |- | ||
|<code>check</code> | |<code>check</code> | ||
سطر 270: | سطر 262: | ||
|<code>save</code> | |<code>save</code> | ||
| | | | ||
|حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف config.xml | |حفظ العنصر <code><platform-spec></code> الخاص بجميع المنصات المضافة إلى الملف [[Cordova/config ref|config.xml]]. | ||
|} | |} | ||
سطر 276: | سطر 268: | ||
هناك عدة طرق لتحديد منصة معينة: | هناك عدة طرق لتحديد منصة معينة: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell"><platform-spec> : platform[@version] | path | url[#commit-ish]</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 283: | سطر 275: | ||
|- | |- | ||
|<code>platform</code> | |<code>platform</code> | ||
|اسم المنصة، على سبيل المثال، <code>android</code>، و <code>ios</code>، <code> | |اسم المنصة، على سبيل المثال، <code>android</code>، و <code>ios</code>، و <code>windows</code> ...إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة. | ||
|- | |- | ||
|<code>version</code> | |<code>version</code> | ||
|مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام | |مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (SemVer، اختصار للكلميتن Semantic Versioning). | ||
|- | |- | ||
|<code>path</code> | |<code>path</code> | ||
| | |مسار إلى المجلد أو الملف tarball الذي يحتوي المنصة. | ||
|- | |- | ||
|<code>url</code> | |<code>url</code> | ||
سطر 295: | سطر 287: | ||
|- | |- | ||
|<code>commit-ish</code> | |<code>commit-ish</code> | ||
| | |مرجع من أجل <code>Commit/tag/branch</code>. إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "<code>master</code>". | ||
|} | |} | ||
=== المنصات المدعومة === | === المنصات المدعومة === | ||
*أندرويد | *[[Cordova/platforms android|أندرويد]] | ||
*iOS | *[[Cordova/platforms ios|iOS]] | ||
* ويندوز (8.1, Phone 8.1, UWP - Windows 10) | * [[Cordova/platforms windows|ويندوز]] (8.1, Phone 8.1, UWP - Windows 10) | ||
* Browser | * Browser | ||
* [[Cordova/platforms electron|Electron]] | |||
* | |||
=== أمثلة === | === أمثلة === | ||
* | * | ||
* إضافة إصدار مثبّت (pinned version) من المنصتين <code>android</code> و <code>ios</code>، وحفظ الإصدار الذي تم تنزيله في الملفين <code>config.xml</code> و <code>package.json</code>: | * إضافة إصدار مثبّت (pinned version) من المنصتين <code>android</code> و <code>ios</code>، وحفظ الإصدار الذي تم تنزيله في الملفين <code>config.xml</code> و <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform add android ios</syntaxhighlight> | ||
* إضافة منصة أندرويد مع الإصدار | * إضافة منصة أندرويد مع الإصدار [http://semver.org/ SemVer ^ 5.0.0] وحفظه في الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform add android@^5.0.0</syntaxhighlight> | ||
* إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>: | * إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم <code>4.0.0</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform add https://github.com/myfork/cordova-android.git#4.0.0</syntaxhighlight> | ||
* إضافة منصة باستخدام مجلد محلي باسم <code>android</code>: | * إضافة منصة باستخدام مجلد محلي باسم <code>android</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform add ../android</syntaxhighlight> | ||
* إضافة منصة باستخدام ملف tarball المحدد: | * إضافة منصة باستخدام ملف tarball المحدد: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform add ../cordova-android.tgz</syntaxhighlight> | ||
* إزالة منصة <code>android</code> من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>: | * إزالة منصة <code>android</code> من المشروع ومن الملفين <code>[[Cordova/config ref|config.xml]]</code> و <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform rm android</syntaxhighlight> | ||
* إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين <code>config.xml</code> و <code>package.json</code>: | * إزالة منصة <code>android</code> من المشروع دون إزالتها من الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform rm android --nosave</syntaxhighlight> | ||
* سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل: | * سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform ls</syntaxhighlight> | ||
* حفظ إصدارات جميع المنصات المضافة | * حفظ إصدارات جميع المنصات المضافة حاليًا إلى المشروع في الملفين [[Cordova/config ref|<code>config.xml</code>]] و <code>package.json</code> | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova platform save</syntaxhighlight> | ||
== | == الأمر <code>cordova plugin</code> == | ||
يُمكّن هذا الأمر من إدارة إضافات المشروع. | |||
يُمكّن هذا الأمر من إدارة إضافات المشروع | |||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova {plugin | plugins} [ | ||
add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} | | ||
{remove | rm} {<pluginid> | <name>} --save | | {remove | rm} {<pluginid> | <name>} --save | | ||
{list | ls} | | {list | ls} | | ||
save | | save | | ||
] | ]</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
!أوامر فرعية | !أوامر فرعية | ||
سطر 352: | سطر 333: | ||
|<code>add <plugin-spec> [...]</code> | |<code>add <plugin-spec> [...]</code> | ||
| | | | ||
|يضيف هذا الأمر إضافات محددة | |يضيف هذا الأمر إضافات محددة. | ||
|- | |- | ||
| | | | ||
|<code> | | --searchpath <code><directory></code> | ||
|عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث | |عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة <code>nix*</code> أو "؛" في ويندوز. | ||
|- | |- | ||
| | | | ||
سطر 364: | سطر 345: | ||
| | | | ||
|<code>--link</code> | |<code>--link</code> | ||
|عند التثبيت من مسار محلي، فسيتم إنشاء | |عند التثبيت من مسار محلي، فسيتم إنشاء وصلة رمزي (symbolic link) بدلًا من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات. | ||
|- | |- | ||
| | | | ||
|<code>--nosave</code> | |<code>--nosave</code> | ||
|عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>. | |عدم حفظ <code><plugin-spec></code> كجزء من العنصر <code>plugin</code> في الملفين <code>config.xml</code> و <code>package.json</code>. | ||
|- | |- | ||
| | | | ||
سطر 378: | سطر 355: | ||
|تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف. | |تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف. | ||
|- | |- | ||
|<code>remove `</code> | |<code>remove`</code> | ||
| | |<code>`[...]</code> | ||
| | | | ||
|- | |- | ||
| | | | ||
|<code>--nosave</code> | |<code>--nosave</code> | ||
|عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code> | |عدم إزالة الإضافة المحددة من الملفين <code>config.xml</code> و <code>package.json</code> | ||
سطر 388: | سطر 365: | ||
|<code>list</code> | |<code>list</code> | ||
| | | | ||
|سرد قائمة من الإضافات المثبتة | |سرد قائمة من الإضافات المثبتة حاليًا. | ||
|- | |- | ||
|<code>save</code> | |<code>save</code> | ||
| | | | ||
|حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع | |حفظ العنصر <code><plugin-spec></code> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع. | ||
|} | |} | ||
=== تحديد الإضافات (Plugin-spec) === | === تحديد الإضافات (Plugin-spec) === | ||
هناك عدة طرق لتحديد الإضافة: | هناك عدة طرق لتحديد الإضافة: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell"><plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir] | ||
</syntaxhighlight> | |||
{| class="wikitable" | {| class="wikitable" | ||
!القيمة | !القيمة | ||
سطر 407: | سطر 381: | ||
|- | |- | ||
|<code>scope</code> | |<code>scope</code> | ||
|نطاق الإضافة المنشورة على هيئة حزمة npm نطاقية ([https://docs.npmjs.com/misc/scope scoped npm package]) | |نطاق الإضافة المنشورة على هيئة حزمة npm نطاقية ([https://docs.npmjs.com/misc/scope scoped npm package]). | ||
|- | |- | ||
|<code>plugin</code> | |<code>plugin</code> | ||
|مُعرّف (id) الإضافة ( | |مُعرّف (id) الإضافة (في سجل npm أو في <code>--searchPath</code>). | ||
|- | |- | ||
|<code>version</code> | |<code>version</code> | ||
|مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام | |مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (semver). | ||
|- | |- | ||
|<code>directory</code> | |<code>directory</code> | ||
|المجلد الذي يحتوي على الملف <code>plugin.xml</code> | |المجلد الذي يحتوي على الملف <code>plugin.xml</code>. | ||
|- | |- | ||
|<code>url</code> | |<code>url</code> | ||
|رابط مستودع git الذي يحتوي الملف <code>plugin.xml</code> | |رابط مستودع git الذي يحتوي الملف <code>plugin.xml</code>. | ||
|- | |- | ||
|<code>commit-ish</code> | |<code>commit-ish</code> | ||
|مرجع | |مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "<code>master</code>". | ||
|} | |} | ||
=== خوارزمية | === خوارزمية استبيان الإضافات === | ||
عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على | عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على استبيان (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب الأسبقية): | ||
* قيمة العنصر <code>plugin-spec</code> الوارد في الأمر (على سبيل المثال <code>cordova plugin add pluginID@version</code>) | * قيمة العنصر <code>plugin-spec</code> الوارد في الأمر (على سبيل المثال <code>cordova plugin add pluginID@version</code>). | ||
* قيمة <code>plugin-spec</code> المحفوظة في الملفين <code>config.xml</code> و <code>package.json</code> (أي إن سبق وأضيفت الإضافة بدون الخيار <code>--nosave</code>) | * قيمة <code>plugin-spec</code> المحفوظة في الملفين <code>config.xml</code> و <code>package.json</code> (أي إن سبق وأضيفت الإضافة بدون الخيار <code>--nosave</code>). | ||
* اعتبارًا من الإصدار 1 | * اعتبارًا من الإصدار 6.1 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد [http://cordova.apache.org/docs/en/latest/guide/hybrid/plugins/index.html#specifying-project-requirements ارتباطاتها] في الملف <code>package.json</code>). | ||
* أحدث | * أحدث إصدارات الإضافة المنشورة في npm.. | ||
===أمثلة=== | ===أمثلة=== | ||
* | * | ||
* إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد <code>../plugins</code> للبحث عن الإضافات. | * إضافة <code>cordova-plugin-camera</code> و <code>cordova-plugin-file</code> إلى المشروع، وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>. واستخدام المجلد <code>../plugins</code> للبحث عن الإضافات. | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins | ||
* إضافة <code>cordova-plugin-camera</code> مع الإصدار | </syntaxhighlight> | ||
<syntaxhighlight lang=" | * إضافة <code>cordova-plugin-camera</code> مع الإصدار [http://semver.org/ semver] <code>^2.0.0</code> وحفظه في الملفين <code>config.xml</code> و <code>package.json</code>: | ||
<syntaxhighlight lang="shell">cordova plugin add cordova-plugin-camera@^2.0.0</syntaxhighlight> | |||
* يضيف هذا المثال الإضافة من المجلد المحلي المحدد: | * يضيف هذا المثال الإضافة من المجلد المحلي المحدد: | ||
<syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera</syntaxhighlight> | <syntaxhighlight lang="console">cordova plugin add ../cordova-plugin-camera</syntaxhighlight> | ||
* يضيف هذا المثال الإضافة من ملف tarball المحدد: | * يضيف هذا المثال الإضافة من ملف tarball المحدد: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova plugin add ../cordova-plugin-camera.tgz</syntaxhighlight> | ||
* إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>: | * إزالة الإضافة من المشروع ومن الملفين <code>config.xml</code> و <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova plugin rm camera</syntaxhighlight> | ||
* إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</code>: | * إزالة الإضافة من المشروع، دون إزالتها من الملفين <code>config.xml</code> أو <code>package.json</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova plugin rm camera --nosave</syntaxhighlight> | ||
* إدارج قائمة من جميع الإضافات المثبتة في المشروع: | * إدارج قائمة من جميع الإضافات المثبتة في المشروع: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova plugin ls</syntaxhighlight> | ||
=== الإضافات المُتعارضة | === الإضافات المُتعارضة === | ||
قد يحدث تعارض بين الإضافات (Conflicting plugins) في حال استخدَمت الإضافات المضافة الوسم <code>edit-config</code> في الملف <code>plugin.xml</code> الخاص بها. يُمكّن الوسم <code>edit-config</code> الإضافات من أن تضيف أو تستبدل خاصيات عناصر [[XML]]. | |||
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم [[XML]]. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تكتب إحدى الإضافات فوق (overwrite) التغييرات التي أجرتها إضافة أخرى عبر الوسم <code>edit-config</code>. | |||
سيُطلق خطأ عند رصد تعارضٍ في <code>edit-config</code>، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض <code>edit-config</code> هو إجراء تغييرات في الملف <code>plugin.xml</code> الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية <code>--force</code>، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة. | |||
ارجع إلى [[Cordova/plugin ref|دليل plugin.xml]] لإدارة <code>edit-config</code> وحل التعارضات، ولأجل الحصول على الأمثلة. | |||
== الأمر <code>cordova prepare</code> == | |||
يحوِّل هذا الأمر البيانات الوصفية في الملف <code>config.xml</code> إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK. | يحوِّل هذا الأمر البيانات الوصفية في الملف <code>config.xml</code> إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova prepare [<platform> [..]] | ||
</syntaxhighlight> | |||
=== | ===الخيارات التي يمكن استعمالها=== | ||
{| class="wikitable" | {| class="wikitable" | ||
!الخيار | !الخيار | ||
سطر 473: | سطر 445: | ||
|<code><platform> [..]</code> | |<code><platform> [..]</code> | ||
|اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات. | |اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات. | ||
|} | |} | ||
== الأمر cordova compile == | == الأمر <code>cordova compile</code> == | ||
الأمر <code>cordova compile</code> هو جزءٌ من أوامر البناء في كوردوفا. إلا أنه يكتفي بتنفيذ خطوة التصريف (compilation) فقط، دون القيام بالتحضير (prepare). من الشائع استدعاء <code>cordova build</code> بدلًا من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد (extending) باستخدام [[Cordova/hooks|الخطافات]]. | |||
الأمر <code>cordova compile</code> هو | |||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova build [<platform> [...]] | ||
[--debug|--release] | [--debug|--release] | ||
[--device|--emulator|--target=<targetName>] | [--device|--emulator|--target=<targetName>] | ||
[--buildConfig=<configfile>] | [--buildConfig=<configfile>] | ||
[-- <platformOpts>]</syntaxhighlight> | |||
[-- <platformOpts>] | |||
لمزيد من التفاصيل، انظر أمر البناء (الأمر <code>cordova build</code> ) أدناه. | |||
== | == الأمر <code>cordova build</code> == | ||
هذا الأمر هو اختصار للأمرين <code>cordova prepare</code> + <code>cordova compile</code> في جميع المنصات المحددة، إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة. | |||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova build [<platform> [...]] | ||
[--debug|--release] | [--debug|--release] | ||
[--device|--emulator] | [--device|--emulator] | ||
[--buildConfig=<configfile>] | [--buildConfig=<configfile>] | ||
[-- <platformOpts>]</syntaxhighlight> | |||
[-- <platformOpts>] | |||
{| class="wikitable" | {| class="wikitable" | ||
!الخيار | !الخيار | ||
سطر 510: | سطر 472: | ||
|- | |- | ||
|<code><platform> [..]</code> | |<code><platform> [..]</code> | ||
|اسم( | |اسم(أسماء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات. | ||
|- | |- | ||
|<code>--debug</code> | |<code>--debug</code> | ||
| | |تنفيذ بناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها. | ||
|- | |- | ||
|<code>--release</code> | |<code>--release</code> | ||
سطر 519: | سطر 481: | ||
|- | |- | ||
|<code>--device</code> | |<code>--device</code> | ||
| | |بناء المشروخ لجهاز. | ||
|- | |- | ||
|<code>--emulator</code> | |<code>--emulator</code> | ||
سطر 528: | سطر 490: | ||
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة. | استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف <code>build.json</code> لتحديد المعاملات لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة. | ||
|- | |- | ||
|<code><platformOpts></code> | |<code><platformOpts></code> | ||
سطر 539: | سطر 498: | ||
* البناء لمنصتي <code>android</code> و <code>windows</code> في الوضع المُصحح <code>debug</code> لأجل النشر على الجهاز: | * البناء لمنصتي <code>android</code> و <code>windows</code> في الوضع المُصحح <code>debug</code> لأجل النشر على الجهاز: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova build android windows --debug --device</syntaxhighlight> | ||
* البناء من أجل المنصة <code>android</code> في وضع الإطلاق <code>release</code> مع استخدام إعدادات البناء المحددة: | * البناء من أجل المنصة <code>android</code> في وضع الإطلاق <code>release</code> مع استخدام إعدادات البناء المحددة: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova build android --release --buildConfig=..\myBuildConfig.json</syntaxhighlight> | ||
* البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء: | * البناء للمنصة <code>android</code> في وضع الإطلاق (<code>release</code>)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey | ||
</syntaxhighlight> | |||
== الأمر <code>cordova run</code> == | |||
يحضِّر هذا الأمر ويبني وينشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيتم استخدامه، ما لم يكن هناك محاكٍ مؤهل يعمل مسبقًا. | |||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova run [<platform> [...]] | ||
[--list | --debug | --release] | [--list | --debug | --release] | ||
[--noprepare] [--nobuild] | [--noprepare] [--nobuild] | ||
[--device|--emulator|--target=<targetName>] | [--device|--emulator|--target=<targetName>] | ||
[--buildConfig=<configfile>] | [--buildConfig=<configfile>] | ||
[-- <platformOpts>]</syntaxhighlight> | |||
[-- <platformOpts>] | |||
{| class="wikitable" | {| class="wikitable" | ||
!الخيار | !الخيار | ||
سطر 563: | سطر 519: | ||
|- | |- | ||
|<code><platform> [..]</code> | |<code><platform> [..]</code> | ||
|اسم( | |اسم(أسماء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات. | ||
|- | |- | ||
|<code>--list</code> | |<code>--list</code> | ||
سطر 569: | سطر 525: | ||
|- | |- | ||
|<code>--debug</code> | |<code>--debug</code> | ||
|يقوم هذا الخيار بنشر بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية <code>--release</code> | |يقوم هذا الخيار بنشر (Deploy) بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية <code>--release</code>. | ||
|- | |- | ||
|<code>--release</code> | |<code>--release</code> | ||
|نشر بناءٍ إطلاقي (release build) | |نشر بناءٍ إطلاقي (release build). | ||
|- | |- | ||
|<code>--device</code> | |<code>--device</code> | ||
| | |بناء المشروع لجهاز. | ||
|- | |- | ||
|<code>--noprepare</code> | |<code>--noprepare</code> | ||
|تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده) | |تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده). | ||
|- | |- | ||
|<code>--nobuild</code> | |<code>--nobuild</code> | ||
|تخطي مرحلة البناء | |تخطي مرحلة البناء. | ||
|- | |- | ||
|<code>--device</code> | |<code>--device</code> | ||
|النشر إلى الجهاز | |النشر إلى الجهاز. | ||
|- | |- | ||
|<code>--emulator</code> | |<code>--emulator</code> | ||
|النشر إلى المحاكي | |النشر إلى المحاكي. | ||
|- | |- | ||
|<code>--target</code> | |<code>--target</code> | ||
|نشر إلى محاكي أو جهاز محدد. استخدم الراية <code>--list</code> لعرض الخيارات المستهدفة | |نشر إلى محاكي أو جهاز محدد. استخدم الراية <code>--list</code> لعرض الخيارات المستهدفة. | ||
|- | |- | ||
|<code>--buildConfig=<configFile></code> | |<code>--buildConfig=<configFile></code> | ||
سطر 596: | سطر 552: | ||
استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة. | استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف <code>build.json</code> لتحديد الوسائط لتخصيص عملية بناء التطبيق، خاصة فيما يتعلق بتوقيع (signing) الحزمة. | ||
|- | |- | ||
|<code><platformOpts></code> | |<code><platformOpts></code> | ||
سطر 607: | سطر 560: | ||
* تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة <code>android</code> المسمى <code>Nexus_5_API_23_x86</code>. مع استخدام إعدادات البناء المحددة عند التشغيل: | * تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة <code>android</code> المسمى <code>Nexus_5_API_23_x86</code>. مع استخدام إعدادات البناء المحددة عند التشغيل: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86 | ||
</syntaxhighlight> | |||
* تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء: | * تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة <code>android</code> باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova run android --nobuild</syntaxhighlight> | ||
* تشغيل بناء | * تشغيل بناء مصحَّح لمشروع كوردوفا الحالي على جهاز <code>ios</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova run ios --device</syntaxhighlight> | ||
* تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق: | * تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova run ios --list</syntaxhighlight> | ||
== الأمر <code>cordova emulate</code> == | == الأمر <code>cordova emulate</code> == | ||
هذا الأمر هو اختصار للأمر <code>cordova run --emulator</code>. ويطلق المحاكي بدلًا من الجهاز. انظر قسم الأمر <code>cordova run</code> أعلاه لمزيد من التفاصيل. | |||
هذا الأمر هو اختصار | |||
== الأمر <code>cordova clean</code> == | == الأمر <code>cordova clean</code> == | ||
ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة. | ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova clean [<platform> [...]]</syntaxhighlight> | ||
=== | === أمثلة === | ||
* | * | ||
* تنظيف عناصر البناء الخاصة بالمنصة <code>android</code>: | * تنظيف عناصر البناء الخاصة بالمنصة <code>android</code>: | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova clean android</syntaxhighlight> | ||
== الأمر <code>cordova requirements</code> == | == الأمر <code>cordova requirements</code> == | ||
هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة <code>0</code> عند الخروج، وإلا فستعاد قيمة غير معدومة. | هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة <code>0</code> عند الخروج، وإلا فستعاد قيمة غير معدومة. | ||
يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة. | يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova requirements android</syntaxhighlight> | ||
== الأمر <code>cordova info</code> == | == الأمر <code>cordova info</code> == | ||
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا <code>info.txt</code> في قاعدة المشروع. | يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا <code>info.txt</code> في قاعدة المشروع. | ||
===الصياغة=== | ===الصياغة=== | ||
سطر 653: | سطر 595: | ||
== الأمر <code>cordova serve</code> == | == الأمر <code>cordova serve</code> == | ||
يشغل هذا الأمر خادمًا محليًا من المجلد <code>www/assets</code> باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code><nowiki>http://HOST_IP:PORT/PLATFORM/www</nowiki></code> | يشغل هذا الأمر خادمًا محليًا من المجلد <code>www/assets</code> باستخدام المنفذ <code>port</code> المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: <code><nowiki>http://HOST_IP:PORT/PLATFORM/www</nowiki></code> | ||
===الصياغة=== | ===الصياغة=== | ||
سطر 661: | سطر 600: | ||
== الأمر <code>cordova telemetry</code> == | == الأمر <code>cordova telemetry</code> == | ||
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection). | هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection). | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova telemetry [STATE]</syntaxhighlight> | ||
{| class="wikitable" | {| class="wikitable" | ||
!الخيار | !الخيار | ||
سطر 679: | سطر 615: | ||
=== تفاصيل === | === تفاصيل === | ||
يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات | يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة <code>CI</code>، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية <code>--no-telemetry</code>. | ||
===أمثلة=== | ===أمثلة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova telemetry on | ||
cordova telemetry off | cordova telemetry off | ||
cordova build --no-telemetry</syntaxhighlight> | cordova build --no-telemetry</syntaxhighlight> | ||
سطر 688: | سطر 624: | ||
== الأمر <code>cordova help</code> == | == الأمر <code>cordova help</code> == | ||
يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد. | يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد. | ||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova help [command] | ||
cordova [command] -h | cordova [command] -h | ||
cordova -h [command]</syntaxhighlight> | cordova -h [command] </syntaxhighlight> | ||
== الأمر <code>cordova config</code> == | == الأمر <code>cordova config</code> == | ||
هذا الأمر يعيّن، و ويجلب، ويحذف، و يُعدّل ويُدرج قائمة الخيارات العامة لكوردوفا. | |||
هذا الأمر يعيّن، و | |||
===الصياغة=== | ===الصياغة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova config ls | ||
cordova config edit | cordova config edit | ||
cordova config set <key> <value> | cordova config set <key> <value> | ||
cordova config get <key> | cordova config get <key> | ||
cordova config delete <key> | cordova config delete <key></syntaxhighlight> | ||
===أمثلة=== | ===أمثلة=== | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="shell">cordova config set autosave false | ||
</syntaxhighlight> | |||
== انظر | == انظر أيضًا == | ||
* | * ا<nowiki/>[[Cordova/plugin ref|لملف Plugin.xml.]] | ||
* | * [[Cordova/config ref|الملف Config.xml]] | ||
==مصادر== | ==مصادر== | ||
*[https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html صفحة Cordova Command-line-interface (CLI) Reference في توثيق كوردوفا الرسمي.] | *[https://cordova.apache.org/docs/en/latest/reference/cordova-cli/index.html صفحة Cordova Command-line-interface (CLI) Reference في توثيق كوردوفا الرسمي.] |
المراجعة الحالية بتاريخ 10:43، 2 ديسمبر 2020
يقدم هذا الدليل معلومات حول واجهة سطر الأوامر الخاصة بكوردوفا، والأوامر التي تُستخدم معها.
الصيغة العامة لأوامر واجهة سطر الأوامر هي بالشكل التالي:
cordova <command> [options] -- [platformOpts]
لائحة الأوامر العامة
يمكن استخدام الأوامر التالية في أي وقت.
الأمر | الشرح |
---|---|
create
|
إنشاء مشروع. |
help
|
الحصول على المساعدة بخصوص أمرٍ ما. |
telemetry
|
تفعيل مجموعة القياس (telemetry collection) أو إيقافها. |
config
|
تعيين، وجلب، وحذف، وتعديل وسرد قائمة الخيارات العامة لكوردوفا. |
لائحة أوامر المشروع
تُدعَم الأوامر التالية عندما يكون مجلد العمل الحالي مشروعًا صالحًا.
الأمر | الشرح |
---|---|
info
|
يولد هذا الأمر معلومات عن المشروع. |
requirements
|
يتحقق من ويطبع جميع متطلبات التثبيت للمنصات المحددة. |
platform
|
إدارة منصات المشروع. |
plugin
|
إدارة إضافات المشروع. |
prepare
|
نسخ الملفات في المنصة (أو المنصات) لأجل البناء. |
compile
|
بناء المنصة(ات). |
clean
|
تنظيف المشروع من آثار البناء. |
run
|
تشغيل المشروع (بما في ذلك التحضير prepare والتصريف compile ).
|
serve
|
تشغيل المشروع مع خادم ويب محلي (بما في ذلك التحضير prepare ).
|
خيارات شائعة
تنطبق الخيارات التالية على جميع أوامر واجهة سطر الأوامر في كوردوفا.
الأمر | الشرح |
---|---|
-d أو --verbose
|
يظهر معلومات أكثر تفصيلًا على الصدفة (shell). يمكنك أيضًا الاشتراك في الحدثين log و warn إذا كنت تستخدم cordova-cli كوحدة عقدية (node module) عبر استدعاء cordova.on('log', function() {}) أو cordova.on('warn', function() {}) .
|
-v أو --version
|
طباعة إصدار cordova-cli المثبت.
|
--no-update-notifier
|
سوف يعطل هذا الخيار ميزة التحقق من التحديثات. أو يمكنك بدلًا من ذلك إضافة التعبير "optOut": true إلى الملف ~/.config/configstore/update-notifier-cordova.json أو تعيين متغير البيئة NO_UPDATE_NOTIFIER إلى أية قيمة (انظر التفاصيل في توثيق update-notifier).
|
--nohooks
|
منع تنفيذ الخطافات (مع استخدام التعبير النمطي RegExp الخاص بالخُطاف كمعامل). |
--no-telemetry
|
تعطيل مجموعة القياس عن بُعد (telemetry collection) الخاصة بالأمر الحالي. |
خيارات مخصوصة بالمنصات (Platform-specific options)
بعض الأوامر لها خيارات (platformOpts
) مخصوصة بمنصات معينة. يمكن استخدامها في واجهة سطر الأوامر مع الفاصل "--
"، والذي يوقف تحليل (parsing) الأمر في الوحدة cordova-lib
ويُمرر باقي الخيارات للمنصات لأجل تحليلها.
يوضح المثال التالي كيف يمكن استخدام واجهة سطر أوامر كوردوفا لإنشاء مشروع مع إضافة الكاميرا وتشغيله على منصة أندرويد. ويمكنك تحديد خيارات مخصوصة بمنصة معينة مثل الخيار --keystore
:
# إنشاء مشروع كوردوفا
cordova create myApp com.myCompany.myApp myApp
cd myApp
# يضيف هذا الأمر إلى المشروع إضافة الكاميرا ويسجل ذلك في الملفين
# config.xml و package.json
cordova plugin add cordova-plugin-camera
# يضيف هذا الأمر إلى المشروع إضافة منصة أندرويد ويسجل ذلك في الملفين
# config.xml و package.json
cordova platform add android
# يتحقق هذا الأمر مما إذا كان النظام مُعدًا لبناء منصة أندرويد
cordova requirements android
# يبني أندرويد ويحذف المخرجات الزائدة
cordova build android --verbose
# يشغل المشروع على منصة أندرويد
cordova run android
# يقوم هذا الأمر بالبناء لأجل منصة أندرويد في وضعية الإطلاق مع معاملات التوقيع المحددة
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
الأمر cordova create
ينشئ هذا الأمر هيكل المجلد الخاص بمشروع كوردوفا في المسار المحدد.
الصياغة
cordova create path [id [name [config]]] [options]
القيمة | الشرح |
---|---|
path
|
تنشئ مجلدًا، ويُشترط ألا يكون موجودًا مسبقًا. لمزيد من التفاصيل حول بنية المجلد، انظر أدناه. |
id
|
القيمة الافتراضية: io.cordova.hellocordova
يمثِّل مُعرِّفًا لنمط النطاق العكسي (Reverse domain-style)، والذي يشير إلى الخاصية |
name
|
القيمة الافتراضية: HelloCordova
عنوان العرض (display title) الخاص بالتطبيق، والذي يرتبط بالعنصر |
config
|
سلسلة نصية وفق صيغة JSON، والتي ستُدرج الأزواج مفتاح/قيمة (key/values) الخاصة بها في الملف <path> /.cordova/config.json.
|
الخيارات التي يمكن استعمالها
الأمر | الشرح |
---|---|
--template
|
استخدام قالب مخصصٍ محلي، أو من مُدير الحُزم NPM، أو من مستودع GitHub. |
--copy-from\
|
--src
|
--link-to
|
رابط رمزي (Symlink) يشير إلى المجلد www المحدد دون إنشاء نسخة منه.
|
بنية مجلد المشروع
تعمل واجهة سطر أوامر كوردوفا وفق بنية المجلد التالية:
myapp/
|-- config.xml
|-- hooks/
|-- merges/
| | |-- android/
| | |-- windows/
| | |-- ios/
|-- www/
|-- platforms/
| |-- android/
| |-- windows/
| |-- ios/
|-- plugins/
|--cordova-plugin-camera/
الملف Config.xml
يحتوي هذا الملف على إعدادات تطبيقك، ويسمح لك بتخصيص سلوك مشروعك. انظر توثيق الملف Config.xml.
المجلد www
يحتوي المجلد www/
على أصول الويب (web artifacts) الخاصة بالمشروع، مثل ملفات html. و cs. و js. كمطور لتطبيقات كوردوفا، فإنَّ معظم الشيفرات البرمجية والأصول الخاصة بك ستوضع هنا. سيتم نسخها عبر الأمر cordova prepare
إلى المجلد www
الخاص بكل منصة على حدة. ويعاد إنتاج المجلد المصدري www
داخل المجلد الفرعي لكل منصة، مثلًا في المجلدين platforms/ios/www
أو platforms/android/assets/www
.
نظرًا لكون واجهة سطر الأوامر تنسخ الملفات باستمرار من المجلد المصدري www
، فينبغي ألا تعدل إلا هذه الملفات، وليس الملفات الموجودة في المجلدات الفرعية للمنصات. إذا كنت تستخدم برنامجًا لإدارة الإصدارات، فعليك إضافة المجلد المصدري www
جنبًا إلى جنب مع المجلد المُدمج (merges folder)، في نظام إدارة الإصدارات.
المجلد platforms
يحتوي هذ المجلد على كافة الشيفرات المصدرية والبرامج النصية المبنية (build scripts) للمنصات التي تضيفها إلى مشروعك.
ملاحظة: عند استخدام واجهة سطر الأوامر لبناء تطبيقك، فعليك ألا تعدّل الملفات الموجودة في المجلد /platform/
، إلا إن كنت تعرف ما تفعله، أو إن كان التوثيق يسمح بذلك. الملفات الموجودة في هذا المجلد ستستبدل (overwritten) باستمرار عند إعداد التطبيقات لأجل بنائها، أو عند إعادة تثبيت الإضافات.
المجلد plugins
الإضافات التي أُضيفت للمشروع ستُستخلص أو تُتسخ في هذا المجلد.
المجلد hooks
قد يحتوي هذا المجلد على نصوص برمجية تُستخدم لتخصيص أوامر واجهة سطر الأوامر. سيتم تنفيذ كل البرامج النصية التي تضيفها إلى هذه المجلدات قبل وبعد الأوامر المقابلة لاسم المجلد. وهو أمر مفيد لدمج أنظمة البناء خاصتك أو التكامل مع أنظمة إدارة الإصدارات.
راجع صفحة الخطافات لمزيد من المعلومات.
المجلد merges
يتم تضمين أصول الويب الخاصة بالمنصة (ملفات HTML و CSS و JavaScript) داخل المجلدات الفرعية المناسبة في هذا المجلد. وتُنشر هذه الملفات عبر الأمر prepare
إلى المجلد الأصلي (native directory) المناسب. ستحل الملفات الموضوعة في المجلد merges/
محل الملفات المطابقة في المجلد www/
الخاص بالمنصة المعنية.
المثال التالي يفترض هيكل المشروع التالي:
merges/
|-- ios/
| -- app.js
|-- android/
| -- android.js
www/
-- app.js
بعد بناء مشروعي أندرويد و iOS، سيحتوي تطبيق أندرويد على الملفين app.js
و android.js
. أما تطبيق iOS فلن يحتوي إلا على الملف app.js
الموجود في المسار merges/ios/app.js
، وسيستبدل (override) الملف app.js
الموجود في المجلد www/
.
إداة الإصدارات
من المستحسن عدم إدراج المجلدين platforms/
و plugins/
في المجلدات التي يتحقق منها مدير الإصدارات، إذ أنها تحتوي عناصر وملفات بناء (build artifact) المشروع. ستُحفَظ المنصة والإضافة خاصتك في الملفين config.xml
و package.json
تلقائيًا. وسيتم تنزيلها عند تنفيذ الأمر cordova prepare
.
أمثلة
- إنشاء مشروع كوردوفا في المجلد
myapp
باستخدام المعرّف واسم العرض المحددين:
cordova create myapp com.mycompany.myteam.myapp MyApp
- إنشاء مشروع كوردوفا مع وصلة رمزي (symlink) إلى مجلد
www
موجود. قد يكون هذا مفيدًا إن كنت تعتمد عملية بناء مخصصة، أو إن كانت لديك أصول تريد استخدامها في تطبيق كوردوفا الخاص بك:
cordova create myapp --link-to=../www
الأمر platform command
يدير هذا الأمر منصات كوردوفا، إذ يسمح لك بإضافة التحديثات وإزالتها وتحديثها وإدراجها والتحقق منها.
تنفيذ الأوامر التي تضيف أو تزيل المنصات يؤثر على محتويات مجلد المشروع.
الصياغة
cordova {platform | platforms} [
add <platform-spec> [...] {--save | link=<path> } |
{remove | rm} platform [...] {--save}|
{list | ls} |
check |
save |
update ]
أوامر فرعية | الخيار | الشرح |
---|---|---|
add <platform-spec> [...]
|
إضافة منصات محددة. | |
--nosave
|
عدم حفظ <platform-spec> في الملفين config.xml و package.json بعد تثبيتها باستخدام الوسم <engine> .
| |
--link=<path>
|
عندما يكون <platform-spec> مسارًا محليًا، فسينشئ هذا الأمر الفرعي رابطًا لمكتبة المنصة مباشرةً بدلًامن إنشاء نسخة منها (يختلف الدعم بحسب المنصات، كما أنه مفيد في تطوير المنصة).
| |
remove <platform>[...]
|
إزالة المنصات المحددة. | |
--nosave
|
عدم حذف المنصات المحددة من الملفين config.xml و package.json بعد إزالتها. | |
update platform[...]
|
تحديث المنصات المحددة. | |
--save
|
تحديث الإصدار المحدد في الملف config.xml. | |
list
|
سرد جميع المنصات المثبتة والمتاحة في قائمة. | |
check
|
إدارج المنصات التي يمكن تحديثها عبر واجهة سطر الأوامر عبر الأمر platform update .
| |
save
|
حفظ العنصر <platform-spec> الخاص بجميع المنصات المضافة إلى الملف config.xml.
|
تحديد المنصات (Platform-spec)
هناك عدة طرق لتحديد منصة معينة:
<platform-spec> : platform[@version] | path | url[#commit-ish]
القيمة | الشرح |
---|---|
platform
|
اسم المنصة، على سبيل المثال، android ، و ios ، و windows ...إلخ. والتي يمكن إضافتها إلى المشروع. في كل نسخة جديدة من واجهة سطر أوامر كوردوفا يتم تسجيل إصدار لكل منصة. وفي حال عدم تحديد الإصدار، سيتم استخدام هذا الإصدار لإضافة المنصة.
|
version
|
مُحدِّد إصدار وفق الصيغة "رئيسي.فرعي.رقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (SemVer، اختصار للكلميتن Semantic Versioning). |
path
|
مسار إلى المجلد أو الملف tarball الذي يحتوي المنصة. |
url
|
عنوان لمستودع git أو لملف tarball الذي يحتوي على منصة. |
commit-ish
|
مرجع من أجل Commit/tag/branch . إذا لم يتم تحديد أي قيمة، فستُستخدم القيمة "master ".
|
المنصات المدعومة
أمثلة
- إضافة إصدار مثبّت (pinned version) من المنصتين
android
وios
، وحفظ الإصدار الذي تم تنزيله في الملفينconfig.xml
وpackage.json
:
cordova platform add android ios
- إضافة منصة أندرويد مع الإصدار SemVer ^ 5.0.0 وحفظه في الملفين
config.xml
وpackage.json
:
cordova platform add android@^5.0.0
- إضافة المنصة عن طريق استنساخ مستودع git المحدد مع إضافة الوسم
4.0.0
:
cordova platform add https://github.com/myfork/cordova-android.git#4.0.0
- إضافة منصة باستخدام مجلد محلي باسم
android
:
cordova platform add ../android
- إضافة منصة باستخدام ملف tarball المحدد:
cordova platform add ../cordova-android.tgz
- إزالة منصة
android
من المشروع ومن الملفينconfig.xml
وpackage.json
:
cordova platform rm android
- إزالة منصة
android
من المشروع دون إزالتها من الملفينconfig.xml
وpackage.json
:
cordova platform rm android --nosave
- سرد قائمة من المنصات المتاحة والمثبتة مع أرقام إصداراتها. يفيد هذا في العثور على أرقام الإصدارات عند الإبلاغ عن المشاكل:
cordova platform ls
- حفظ إصدارات جميع المنصات المضافة حاليًا إلى المشروع في الملفين
config.xml
وpackage.json
cordova platform save
الأمر cordova plugin
يُمكّن هذا الأمر من إدارة إضافات المشروع.
الصياغة
cordova {plugin | plugins} [
add <plugin-spec> [..] {--searchpath=<directory> | --noregistry | --link | --save | --force} |
{remove | rm} {<pluginid> | <name>} --save |
{list | ls} |
save |
]
أوامر فرعية | الخيار | الشرح |
---|---|---|
add <plugin-spec> [...]
|
يضيف هذا الأمر إضافات محددة. | |
--searchpath <directory>
|
عند البحث عن الإضافات عبر مُعرِّفها (ID)، فسيتم البحث أولًا في هذا المجلد وكل المجلدات الفرعية الخاصة به قبل البحث في السجل (registry). يمكن تحديد عدة مسارات للبحث. استخدم ":" كفاصل في أنظمة nix* أو "؛" في ويندوز.
| |
--noregistry
|
لا تبحث في السجل عن الإضافات. | |
--link
|
عند التثبيت من مسار محلي، فسيتم إنشاء وصلة رمزي (symbolic link) بدلًا من نسخ الملفات. يختلف مدى ارتباط الملفات حسب المنصة. وهو أمر مفيد لتطوير الإضافات. | |
--nosave
|
عدم حفظ <plugin-spec> كجزء من العنصر plugin في الملفين config.xml و package.json .
| |
--force
|
تم تقديم هذا الأمر في الإصدار 6.1. يفرض نسخ الملفات المصدرية من الإضافة حتى لو كان الملف نفسه موجودًا سلفًا في المجلد الهدف. | |
remove`
|
`[...]
|
|
--nosave
|
عدم إزالة الإضافة المحددة من الملفين config.xml و package.json
| |
list
|
سرد قائمة من الإضافات المثبتة حاليًا. | |
save
|
حفظ العنصر <plugin-spec> الخاص بجميع الإضافات المضافة حاليًا إلى المشروع.
|
تحديد الإضافات (Plugin-spec)
هناك عدة طرق لتحديد الإضافة:
<plugin-spec> : [@scope/]pluginID[@version]|directory|url[#commit-ish][:subdir]
القيمة | الشرح |
---|---|
scope
|
نطاق الإضافة المنشورة على هيئة حزمة npm نطاقية (scoped npm package). |
plugin
|
مُعرّف (id) الإضافة (في سجل npm أو في --searchPath ).
|
version
|
مُحدِّد الإصدار (version specifier) على هيئة "رئيسي.فرعي.رُقعة" (Major.minor.patch) باستخدام الإدارة الدلالية لنُسخ البرمجيات (semver). |
directory
|
المجلد الذي يحتوي على الملف plugin.xml .
|
url
|
رابط مستودع git الذي يحتوي الملف plugin.xml .
|
commit-ish
|
مرجع من أجل Commit/tag/branch. إذا لم يتم تحديد أي منها، فسيتم استخدام القيمة "master ".
|
خوارزمية استبيان الإضافات
عندما تضيف إضافة إلى مشروع، ستعمل واجهة سطر الأوامر على استبيان (تحديد) الإضافة استنادًا إلى المعايير التالية (مدرجة حسب الأسبقية):
- قيمة العنصر
plugin-spec
الوارد في الأمر (على سبيل المثالcordova plugin add pluginID@version
). - قيمة
plugin-spec
المحفوظة في الملفينconfig.xml
وpackage.json
(أي إن سبق وأضيفت الإضافة بدون الخيار --nosave
). - اعتبارًا من الإصدار 6.1 من كوردوفا، أحدث إصدار منشور من الإضافة في مدير الحُزم npm، والذي يمكن للمشروع الحالي دعمه (ينطبق فقط على الإضافات التي تسرد ارتباطاتها في الملف
package.json
). - أحدث إصدارات الإضافة المنشورة في npm..
أمثلة
- إضافة
cordova-plugin-camera
وcordova-plugin-file
إلى المشروع، وحفظه في الملفينconfig.xml
وpackage.json
. واستخدام المجلد ../plugins
للبحث عن الإضافات.
cordova plugin add cordova-plugin-camera cordova-plugin-file --save --searchpath ../plugins
- إضافة
cordova-plugin-camera
مع الإصدار semver ^2.0.0
وحفظه في الملفينconfig.xml
وpackage.json
:
cordova plugin add cordova-plugin-camera@^2.0.0
- يضيف هذا المثال الإضافة من المجلد المحلي المحدد:
cordova plugin add ../cordova-plugin-camera
- يضيف هذا المثال الإضافة من ملف tarball المحدد:
cordova plugin add ../cordova-plugin-camera.tgz
- إزالة الإضافة من المشروع ومن الملفين
config.xml
وpackage.json
:
cordova plugin rm camera
- إزالة الإضافة من المشروع، دون إزالتها من الملفين
config.xml
أوpackage.json
:
cordova plugin rm camera --nosave
- إدارج قائمة من جميع الإضافات المثبتة في المشروع:
cordova plugin ls
الإضافات المُتعارضة
قد يحدث تعارض بين الإضافات (Conflicting plugins) في حال استخدَمت الإضافات المضافة الوسم edit-config
في الملف plugin.xml
الخاص بها. يُمكّن الوسم edit-config
الإضافات من أن تضيف أو تستبدل خاصيات عناصر XML.
يمكن أن تتسبب هذه الميزة في حدوث مشكلات في التطبيق إن حاولت أكثر من إضافة واحدة تعديل نفس وسم XML. لقد تم تقديم (implement) عملية رصد التعارض لمنع إضافة الإضافات حتى لا تكتب إحدى الإضافات فوق (overwrite) التغييرات التي أجرتها إضافة أخرى عبر الوسم edit-config
.
سيُطلق خطأ عند رصد تعارضٍ في edit-config
، ولن تُضاف الإضافة. وستنبه رسالة الخطأ إلى ضرورة حل جميع التعارضات قبل إضافة الإضافة. أحد الخيارات المتاحة لحل تعارض edit-config
هو إجراء تغييرات في الملف plugin.xml
الخاص بالإضافات المتأثرة بحيث لا تعدّل نفس عنصر XML. الخيار الآخر هو استخدام الراية --force
، والتي تجبر كوردوفا على أن تضيف الإضافة. يجب استخدام هذا الخيار بحذر لأنه يتجاهل التعارضات المرصودة، كما سيكتب فوق (overwrite) جميع التعارضات التي حدثت مع الإضافات الأخرى، وهذا سيترك الإضافات الأخرى في حالة سيئة.
ارجع إلى دليل plugin.xml لإدارة edit-config
وحل التعارضات، ولأجل الحصول على الأمثلة.
الأمر cordova prepare
يحوِّل هذا الأمر البيانات الوصفية في الملف config.xml
إلى ملفات بيانية (manifest files) مخصوصة بالمنصات، وينسخ الأيقونات وشاشات البداية (splashscreens)، وينسخ ملفات الإضافات الخاصة بمنصات معينة بحيث يكون المشروع جاهزًا للبناء عبر بيئة العمل الأصلية SDK.
الصياغة
cordova prepare [<platform> [..]]
الخيارات التي يمكن استعمالها
الخيار | الشرح |
---|---|
<platform> [..]
|
اسم (أسماء) المنصة المراد تحضيرها. في حال عدم تحديده، فستُبنى جميع المنصات. |
الأمر cordova compile
الأمر cordova compile
هو جزءٌ من أوامر البناء في كوردوفا. إلا أنه يكتفي بتنفيذ خطوة التصريف (compilation) فقط، دون القيام بالتحضير (prepare). من الشائع استدعاء cordova build
بدلًا من هذا الأمر - لكن هذه المرحلة مفيدة للسماح بالتمديد (extending) باستخدام الخطافات.
الصياغة
cordova build [<platform> [...]]
[--debug|--release]
[--device|--emulator|--target=<targetName>]
[--buildConfig=<configfile>]
[-- <platformOpts>]
لمزيد من التفاصيل، انظر أمر البناء (الأمر cordova build
) أدناه.
الأمر cordova build
هذا الأمر هو اختصار للأمرين cordova prepare
+ cordova compile
في جميع المنصات المحددة، إذ يسمح لك ببناء التطبيق لأجل المنصة المحددة.
الصياغة
cordova build [<platform> [...]]
[--debug|--release]
[--device|--emulator]
[--buildConfig=<configfile>]
[-- <platformOpts>]
الخيار | الشرح |
---|---|
<platform> [..]
|
اسم(أسماء) المنصة المراد بناؤها. في حال عدم تحديده، ستُبنى جميع المنصات. |
--debug
|
تنفيذ بناء مُصحّح (debug build)، هذا يترجم عادة إلى وضع التصحيح (debug mode) للمنصة التي يتم بناؤها. |
--release
|
تنفيذ بناء الإطلاق (release build). هذا يترجم عادة إلى وضع الإطلاق (release mode) للمنصة التي يجري بناؤها. |
--device
|
بناء المشروخ لجهاز. |
--emulator
|
البناء لأجل المحاكي. قد تختلف بنية المنصة لمحاكيات الجهاز Vs. |
--buildConfig=<configFile>
|
القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.
استخدام ملف الإعداد المحدد لأجل البناء. يستخدم الملف |
<platformOpts>
|
لتوفير خيارات مخصوصة بمنصة معينة، فيجب عليك إدارج هذا الخيار بعد الفاصل -- . راجع مستندات دليل المنصة لمزيد من التفاصيل.
|
أمثلة
- البناء لمنصتي
android
وwindows
في الوضع المُصححdebug
لأجل النشر على الجهاز:
cordova build android windows --debug --device
- البناء من أجل المنصة
android
في وضع الإطلاقrelease
مع استخدام إعدادات البناء المحددة:
cordova build android --release --buildConfig=..\myBuildConfig.json
- البناء للمنصة
android
في وضع الإطلاق (release
)، مع تمرير خيارات مخصوصة بالمنصة أندرويد لأجل عملية البناء:
cordova build android --release -- --keystore="..\android.keystore" --storePassword=android --alias=mykey
الأمر cordova run
يحضِّر هذا الأمر ويبني وينشر التطبيق على أجهزة أو محاكيات خاصة بمنصات محددة. إذا كان هناك جهاز متصل، فسيتم استخدامه، ما لم يكن هناك محاكٍ مؤهل يعمل مسبقًا.
الصياغة
cordova run [<platform> [...]]
[--list | --debug | --release]
[--noprepare] [--nobuild]
[--device|--emulator|--target=<targetName>]
[--buildConfig=<configfile>]
[-- <platformOpts>]
الخيار | الشرح |
---|---|
<platform> [..]
|
اسم(أسماء) المنصة المراد تشغيلها. في حال عدم تحديده، يتم تشغيل جميع المنصات. |
--list
|
يعيد هذا الخيار قائمة تضم الأهداف (targets) المتاحة. ويعرض أهداف النشر الخاصة بالجهاز والمحاكي ما لم يتم تحديدها |
--debug
|
يقوم هذا الخيار بنشر (Deploy) بناء مُصحّح (debug build). وهو السلوك الافتراضي إلا إن تم تحديد الراية --release .
|
--release
|
نشر بناءٍ إطلاقي (release build). |
--device
|
بناء المشروع لجهاز. |
--noprepare
|
تخطي مرحلة التحضير (متوفر في الإصدار كوردوفا 6.2 وما بعده). |
--nobuild
|
تخطي مرحلة البناء. |
--device
|
النشر إلى الجهاز. |
--emulator
|
النشر إلى المحاكي. |
--target
|
نشر إلى محاكي أو جهاز محدد. استخدم الراية --list لعرض الخيارات المستهدفة.
|
--buildConfig=<configFile>
|
القيمة الافتراضية: build.json في المجلد الجذري لكوردوفا.
استخدام ملف الإعداد المحدد في البناء. يُستخدم ملف |
<platformOpts>
|
لتوفير خيارات مخصوصة بمنصة محددة، فيجب عليك إدارج هذا الخيار بعد الفاصل -- . راجع مستندات دليل المنصة لمزيد من التفاصيل.
|
أمثلة
- تشغيل عملية بناء للإطلاق (release build) لمشروع كوردوفا الحالي على محاكي المنصة
android
المسمىNexus_5_API_23_x86
. مع استخدام إعدادات البناء المحددة عند التشغيل:
cordova run android --release --buildConfig=..\myBuildConfig.json --target=Nexus_5_API_23_x86
- تشغيل عملية بناء مُصححة (debug build) لمشروع كوردوفا الحالي على المنصة
android
باستخدام جهازٍ أو محاكٍ (في حال عدم وجود جهاز متصل). مع تخطي مرحلة البناء:
cordova run android --nobuild
- تشغيل بناء مصحَّح لمشروع كوردوفا الحالي على جهاز
ios
:
cordova run ios --device
- تعداد أسماء جميع الأجهزة المتصلة والمحاكيات المتاحة التي يمكن استخدامها لتشغيل هذا التطبيق:
cordova run ios --list
الأمر cordova emulate
هذا الأمر هو اختصار للأمر cordova run --emulator
. ويطلق المحاكي بدلًا من الجهاز. انظر قسم الأمر cordova run
أعلاه لمزيد من التفاصيل.
الأمر cordova clean
ينظف هذا الأمر عناصر (artifacts) البناء الخاصة بجميع المنصات، أو الخاصة بالمنصة المحددة عن طريق تشغيل عملية تنظيف البناء الخاصة بتلك المنصة.
الصياغة
cordova clean [<platform> [...]]
أمثلة
- تنظيف عناصر البناء الخاصة بالمنصة
android
:
cordova clean android
الأمر cordova requirements
هذا الأمر يطبع ويتحقق من جميع متطلبات المنصات المحددة (أو جميع المنصات المضافة إلى المشروع إذا لم يتم تحديد أي منها). إذا تم استيفاء جميع متطلبات المنصات، فستعاد القيمة 0
عند الخروج، وإلا فستعاد قيمة غير معدومة.
يمكن أن يكون ذلك مفيدًا عند إعداد الجهاز لبناء منصة معينة.
الصياغة
cordova requirements android
الأمر cordova info
يطبع هذا الأمر معلومات مفيدة لتقديم تقارير الأخطاء والحصول على المساعدة. إذ ينشئ ملفًا info.txt
في قاعدة المشروع.
الصياغة
cordova info
الأمر cordova serve
يشغل هذا الأمر خادمًا محليًا من المجلد www/assets
باستخدام المنفذ port
المحدد، أو المنفذ الافتراضي ذو القيمة 8000. يمكن الدخول إلى المشاريع من العنوان: http://HOST_IP:PORT/PLATFORM/www
الصياغة
cordova serve [port]
الأمر cordova telemetry
هذا الأمر يُستخدم لتعطيل أو تمكين مجموعة القياس عن بُعد (telemetry collection).
الصياغة
cordova telemetry [STATE]
الخيار | الشرح |
---|---|
on
|
تشغيل مجموعة القياس عن بعد (telemetry collection). |
off
|
تعطيل مجموعة القياس عن بعد (telemetry collection). |
تفاصيل
يتم عرض مِحَثّ (prompt) موقوت يطلب من المستخدم الاشتراك أو الخروج عند أول تشغيل لكوردوفا. ويستمر لمدة 30 ثانية، وبعد ذلك يتم إلغاء اشتراك المستخدم تلقائيًا إذا لم يقدم أي إجابة. في بيئات CI، يمكن ضبط متغير البيئة CI
، والذي سيمنع المحث من الظهور. يمكن أيضًا إيقاف تشغيل مجموعة القياس عن بُعد باستخدام أمر واحد عبر الراية --no-telemetry
.
أمثلة
cordova telemetry on
cordova telemetry off
cordova build --no-telemetry
لمزيد من التفاصيل، انظر صفحة إدارة الخصوصية.
الأمر cordova help
يظهر هذا الأمر ملخص الصياغة، أو يساعد على فهم أمر محدد.
الصياغة
cordova help [command]
cordova [command] -h
cordova -h [command]
الأمر cordova config
هذا الأمر يعيّن، و ويجلب، ويحذف، و يُعدّل ويُدرج قائمة الخيارات العامة لكوردوفا.
الصياغة
cordova config ls
cordova config edit
cordova config set <key> <value>
cordova config get <key>
cordova config delete <key>
أمثلة
cordova config set autosave false