Grunt Documentation: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
 
Line 1: Line 1:
== Grunt Documentation: دليل شامل للمبتدئين ==
== وثائق Grunt: دليل شامل للمبتدئين ==


Grunt هو مدير مهام JavaScript مفتوح المصدر، يُستخدم بشكل أساسي لأتمتة المهام المتكررة في عملية [[تطوير الويب]]. يهدف Grunt إلى تقليل الجهد اليدوي المبذول في مهام مثل تصغير ملفات [[JavaScript]] و [[CSS]]، وتجميعها، وتشغيل الاختبارات، وإعادة تحميل المتصفح تلقائيًا. هذا المقال موجه للمبتدئين الذين يرغبون في فهم Grunt وكيفية استخدامه في مشاريعهم.
'''Grunt''' هو مدير مهام JavaScript يعتمد على سطر الأوامر. يهدف إلى أتمتة المهام المتكررة في تطوير الويب، مثل التصغير، والتحقق من الأخطاء، والاختبار، والنشر. هذه المقالة موجهة للمبتدئين وتهدف إلى تقديم فهم شامل لوثائق Grunt وكيفية استخدامها بفعالية.


=== ما هو Grunt ولماذا نستخدمه؟ ===
== ما هي وثائق Grunt؟ ==


في مشاريع [[تطوير الواجهات الأمامية]] الكبيرة، تتكرر العديد من المهام بشكل روتيني. على سبيل المثال، قد تحتاج إلى:
وثائق Grunt هي مجموعة شاملة من الإرشادات والمراجع التي توفر معلومات مفصلة حول كيفية استخدام Grunt. تتضمن هذه الوثائق شرحًا للمفاهيم الأساسية، وقائمة بالمهام المتاحة، وأمثلة عملية، ودليل استكشاف الأخطاء وإصلاحها.  يمكن الوصول إلى الوثائق الرسمية من خلال [[https://gruntjs.com/docs/ وثائق Grunt الرسمية]]. الوصول إلى الوثائق هو الخطوة الأولى نحو إتقان استخدام Grunt.


*  تصغير ملفات JavaScript لتقليل حجمها وتحسين سرعة التحميل.
== فهم بنية Gruntfile.js ==
*  دمج عدة ملفات CSS في ملف واحد لتقليل عدد طلبات HTTP.
*  تشغيل [[Linting]] للتحقق من جودة التعليمات البرمجية واكتشاف الأخطاء المحتملة.
*  تحويل ملفات [[Sass]] أو [[Less]] إلى CSS.
*  تشغيل الاختبارات الآلية للتأكد من أن التعليمات البرمجية تعمل بشكل صحيح.


بدلاً من تنفيذ هذه المهام يدويًا في كل مرة، يمكن لـ Grunt أتمتتها لك. هذا يوفر الوقت ويقلل من الأخطاء ويحسن كفاءة عملية التطوير. بالإضافة إلى ذلك، يتيح Grunt لك إنشاء [[خطوط أنابيب بناء]] مخصصة لتلبية احتياجات مشروعك الخاصة.
ملف '''Gruntfile.js''' هو قلب مشروع Grunt. يحتوي هذا الملف على تعريفات المهام والتكوينات اللازمة لتشغيل Grunt. لفهم Gruntfile.js، يجب أن تكون على دراية بالمفاهيم التالية:


=== المتطلبات الأساسية ===
* '''المكونات الإضافية (Plugins):'''  Grunt يعتمد على المكونات الإضافية لتوسيع وظائفه. يتم تثبيت المكونات الإضافية باستخدام '''npm''' (مدير حزم Node.js).  مثال على مكون إضافي شائع هو [[https://www.npmjs.com/package/grunt-contrib-uglify uglify]]، الذي يستخدم لتصغير ملفات JavaScript.
* '''المهام (Tasks):''' المهام هي وحدات العمل الأساسية في Grunt.  يمكن أن تكون المهام بسيطة مثل تشغيل أمر سطر الأوامر أو معقدة مثل معالجة مجموعة من الملفات.
* '''الأهداف (Targets):''' الأهداف تسمح لك بتحديد إصدارات مختلفة من مهمة واحدة.  على سبيل المثال، يمكنك تعريف هدف "dev" للإصدار التجريبي وهدف "prod" للإصدار النهائي.
* '''التكوين (Configuration):''' التكوين يحدد الإعدادات المستخدمة بواسطة المهام.  يمكن أن يتضمن التكوين مسارات الملفات، وخيارات التصغير، وإعدادات الاختبار.


قبل البدء في استخدام Grunt، تأكد من أن لديك ما يلي:
{| class="wikitable"
|+ مثال بسيط لـ Gruntfile.js
|-
| '''السطر''' | '''الشرح'''
|-
| `module.exports = function(grunt) {` | بداية تعريف Gruntfile.js
|-
| `  grunt.initConfig({` | تهيئة Grunt
|-
| `    uglify: {` | تعريف مهمة تصغير الملفات
|-
| `      options: {` | خيارات مهمة التصغير
|-
| `        banner: '/*! My Project - v1.0.0 - <%= grunt.template.today("yyyy-mm-dd") %> */'` | إضافة تعليق في بداية الملف
|-
| `      },` | نهاية خيارات مهمة التصغير
|-
| `      files: [{` | تعريف الملفات المراد تصغيرها
|-
| `        expand: true,` | توسيع الملفات
|-
| `        src: ['*.js'],` | ملفات المصدر
|-
| `        dest: 'dist/',` | مجلد الوجهة
|-
| `        rename: function(dest, src) {` | إعادة تسمية الملفات
|-
| `          return dest + src.replace('.js', '.min.js');` | استبدال لاحقة الملف بـ .min.js
|-
| `        }` | نهاية إعادة تسمية الملفات
|-
| `      }]` | نهاية تعريف الملفات
|-
| `    },` | نهاية مهمة التصغير
|-
| `    watch: {` | تعريف مهمة المراقبة
|-
| `      files: ['<%= uglify.files.src %>'],` | الملفات المراد مراقبتها
|-
| `      tasks: ['uglify']` | المهام التي يتم تشغيلها عند تغيير الملفات
|-
| `    }` | نهاية مهمة المراقبة
|-
| `  });` | نهاية تهيئة Grunt
|-
| `};` | نهاية تعريف Gruntfile.js
|}


*  [[Node.js]] و [[npm]] (مدير حزم Node.js) مثبتين على جهازك. يمكنك تنزيلهما من الموقع الرسمي: [[https://nodejs.org/]]
== المهام الشائعة في Grunt ==
*  معرفة أساسية بـ [[JavaScript]] و [[HTML]] و [[CSS]].
*  فهم أساسي لمفهوم [[سطر الأوامر]] أو [[Terminal]].


=== تثبيت Grunt ===
هناك العديد من المهام المتاحة في Grunt. بعض المهام الأكثر شيوعًا تشمل:


لتثبيت Grunt عالميًا (مستحسن):
* '''Uglify:''' تصغير ملفات JavaScript لتقليل حجمها. [[https://gruntjs.com/plugins/grunt-contrib-uglify Uglify Plugin]]
* '''Concat:''' دمج ملفات متعددة في ملف واحد. [[https://gruntjs.com/plugins/grunt-contrib-concat Concat Plugin]]
* '''Minify CSS:''' تصغير ملفات CSS لتقليل حجمها. [[https://gruntjs.com/plugins/grunt-contrib-cssmin Minify CSS Plugin]]
* '''JSHint:''' التحقق من أخطاء JavaScript. [[https://gruntjs.com/plugins/grunt-jshint JSHint Plugin]]
* '''Watch:''' مراقبة الملفات وتشغيل المهام تلقائيًا عند تغييرها. [[https://gruntjs.com/plugins/grunt-contrib-watch Watch Plugin]]
* '''Copy:''' نسخ الملفات والمجلدات. [[https://gruntjs.com/plugins/grunt-contrib-copy Copy Plugin]]
* '''Clean:''' حذف الملفات والمجلدات. [[https://gruntjs.com/plugins/grunt-contrib-clean Clean Plugin]]


```bash
== استخدام وثائق Grunt بفعالية ==
npm install -g grunt-cli
```


هذا الأمر يقوم بتثبيت واجهة سطر الأوامر Grunt (grunt-cli) التي تسمح لك بتشغيل مهام Grunt من سطر الأوامر.
* '''البحث:''' استخدم وظيفة البحث في الوثائق للعثور على المعلومات التي تحتاجها بسرعة.
* '''الأمثلة:'''  راجع الأمثلة العملية لفهم كيفية استخدام المهام المختلفة.
* '''المراجع:'''  استخدم المراجع للحصول على معلومات مفصلة حول خيارات التكوين المتاحة.
* '''المجتمع:'''  شارك في مجتمع Grunt لطرح الأسئلة والحصول على المساعدة. [[https://stackoverflow.com/questions/tagged/grunt StackOverflow Grunt Tag]]


=== إنشاء مشروع Grunt ===
== استراتيجيات متقدمة ==


1. أنشئ مجلدًا جديدًا لمشروعك.
* '''التكوين الديناميكي:''' استخدام متغيرات Grunt لإنشاء تكوينات مرنة.
2.  انتقل إلى هذا المجلد في سطر الأوامر.
* '''المهام المخصصة:''' إنشاء مهام مخصصة لتلبية احتياجاتك الخاصة.
3.  قم بتهيئة مشروع Node.js باستخدام الأمر:
* '''التكامل مع أدوات أخرى:''' دمج Grunt مع أدوات التطوير الأخرى مثل '''Bower''' و '''Gulp''' و '''Webpack'''.
* '''تحسين الأداء:''' تحسين أداء Grunt من خلال استخدام التوازي والتخزين المؤقت.


```bash
== روابط ذات صلة (تحليل فني واستراتيجيات تداول) ==
npm init -y
```


هذا الأمر سينشئ ملف `package.json` في مجلد مشروعك. هذا الملف يحتوي على معلومات حول مشروعك، بما في ذلك قائمة بالتبعيات.
* [[تحليل الشموع اليابانية]]
 
* [[مؤشر الماكد]]
4.  قم بتثبيت Grunt كمشروع محلي:
* [[مؤشر RSI]]
 
* [[خطوط فيبوناتشي]]
```bash
* [[مستويات الدعم والمقاومة]]
npm install grunt --save-dev
```
 
هذا الأمر يقوم بتثبيت Grunt في مجلد `node_modules` في مشروعك ويضيفه كـ `devDependency` في ملف `package.json`.
 
=== ملف Gruntfile.js ===
 
ملف `Gruntfile.js` هو ملف التكوين الرئيسي لـ Grunt. يحتوي هذا الملف على تعريفات المهام والأهداف التي سيتم تنفيذها.
 
مثال بسيط لـ `Gruntfile.js`:
 
```javascript
module.exports = function(grunt) {
 
  grunt.initConfig({
    uglify: {
      options: {
        banner: '/*! <%= grunt.template.today("dd-mm-yyyy") %> */\n'
      },
      build: {
        src: 'src/js/*.js',
        dest: 'dist/js/main.min.js'
      }
    },
    watch: {
      scripts: {
        files: ['src/js/*.js'],
        tasks: ['uglify'],
        options: {
          spawn: false,
        },
      }
    }
  });
 
  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-watch');
 
  grunt.registerTask('default', ['uglify', 'watch']);
 
};
```
 
في هذا المثال:
 
*  `grunt.initConfig()`: يقوم بتهيئة Grunt.
*  `uglify`: تعريف مهمة تصغير ملفات JavaScript.
*  `watch`: تعريف مهمة مراقبة التغييرات في ملفات JavaScript وتشغيل مهمة التصغير تلقائيًا.
*  `grunt.loadNpmTasks()`: يقوم بتحميل المكونات الإضافية (plugins) المطلوبة.
*  `grunt.registerTask()`: يقوم بتعريف المهام الافتراضية التي سيتم تنفيذها عند تشغيل Grunt بدون تحديد مهمة معينة.
 
=== تشغيل مهام Grunt ===
 
لتشغيل المهام المحددة في `Gruntfile.js`، استخدم الأمر:
 
```bash
grunt
```
 
هذا الأمر سيقوم بتشغيل المهمة الافتراضية (default) المحددة في `Gruntfile.js`. يمكنك أيضًا تشغيل مهام محددة عن طريق تحديد اسمها:
 
```bash
grunt uglify
grunt watch
```
 
=== المكونات الإضافية (Plugins) ===
 
Grunt يعتمد على المكونات الإضافية لتنفيذ المهام المختلفة. هناك العديد من المكونات الإضافية المتاحة لـ Grunt، والتي يمكن تثبيتها باستخدام npm.
 
مثال: لتثبيت مكون إضافي لتجميع ملفات CSS:
 
```bash
npm install grunt-contrib-concat --save-dev
```
 
ثم قم بتحميل هذا المكون الإضافي في `Gruntfile.js` باستخدام `grunt.loadNpmTasks('grunt-contrib-concat');`.
 
=== أمثلة على مهام Grunt الشائعة ===
 
*  **تصغير JavaScript:** `grunt-contrib-uglify`
*  **تجميع ملفات JavaScript:** `grunt-contrib-concat`
*  **تصغير ملفات CSS:** `grunt-contrib-cssmin`
*  **تجميع ملفات CSS:** `grunt-contrib-concat`
*  **تحويل Sass/Less إلى CSS:** `grunt-sass` أو `grunt-less`
*  **تشغيل Linting:** `grunt-jshint` أو `grunt-eslint`
*  **مراقبة التغييرات في الملفات:** `grunt-contrib-watch`
*  **تشغيل الاختبارات:** `grunt-mocha`
 
=== البدائل الحديثة لـ Grunt ===
 
على الرغم من أن Grunt لا يزال مستخدمًا على نطاق واسع، إلا أن هناك أدوات بناء حديثة أخرى أصبحت أكثر شيوعًا، مثل:
 
[[Gulp]]
*   [[Webpack]]
*   [[Parcel]]
 
هذه الأدوات توفر ميزات إضافية وأداءً أفضل في بعض الحالات.
 
=== مصادر إضافية ===
 
*  [[الموقع الرسمي لـ Grunt]]: [[https://gruntjs.com/]]
*  [[وثائق Grunt]]: [[https://gruntjs.com/docs/]]
*  [[Grunt Cookbook]]: [[https://github.com/gruntjs/grunt-cookbook]]
 
=== استراتيجيات التداول ذات الصلة وتحليل البيانات ===
 
* [[التحليل الفني]]
* [[تحليل حجم التداول]]
* [[استراتيجية المتوسطات المتحركة]]
* [[استراتيجية الاختراق]]
* [[استراتيجية الاختراق]]
* [[استراتيجية الارتداد]]
* [[استراتيجية الارتداد]]
* [[استراتيجية بولينجر باند]]
* [[تداول الأخبار]]
* [[استراتيجية مؤشر القوة النسبية]]
* [[استراتيجية MACD]]
* [[استراتيجية Fibonacci Retracement]]
* [[استراتيجية Ichimoku Cloud]]
* [[التحليل الأساسي]]
* [[التحليل الأساسي]]
* [[إدارة المخاطر]]
* [[إدارة المخاطر]]
* [[تنويع المحفظة]]
* [[التحليل الحجمي]]
* [[التحليل الموجي إليوت]]
* [[التحليل الموجي إليوت]]
* [[نموذج الرأس والكتفين]]
* [[التحليل الفني المتقدم]]
* [[استراتيجية المتوسطات المتحركة]]
* [[استراتيجية المتاجر المتذبذبة]]
 
== روابط ذات صلة (أدوات و تقنيات تطوير الويب) ==
 
* [[Node.js]]
* [[npm]]
* [[Bower]]
* [[Gulp]]
* [[Webpack]]
* [[JavaScript]]
* [[CSS]]
* [[HTML]]
* [[Git]]
* [[GitHub]]
* [[JSON]]
* [[YAML]]
* [[JSHint]]
* [[ESLint]]
* [[Karma]]


[[Category:أدوات_بناء]]
[[Category:Grunt]]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==

Latest revision as of 04:56, 24 April 2025

وثائق Grunt: دليل شامل للمبتدئين

Grunt هو مدير مهام JavaScript يعتمد على سطر الأوامر. يهدف إلى أتمتة المهام المتكررة في تطوير الويب، مثل التصغير، والتحقق من الأخطاء، والاختبار، والنشر. هذه المقالة موجهة للمبتدئين وتهدف إلى تقديم فهم شامل لوثائق Grunt وكيفية استخدامها بفعالية.

ما هي وثائق Grunt؟

وثائق Grunt هي مجموعة شاملة من الإرشادات والمراجع التي توفر معلومات مفصلة حول كيفية استخدام Grunt. تتضمن هذه الوثائق شرحًا للمفاهيم الأساسية، وقائمة بالمهام المتاحة، وأمثلة عملية، ودليل استكشاف الأخطاء وإصلاحها. يمكن الوصول إلى الوثائق الرسمية من خلال [وثائق Grunt الرسمية]. الوصول إلى الوثائق هو الخطوة الأولى نحو إتقان استخدام Grunt.

فهم بنية Gruntfile.js

ملف Gruntfile.js هو قلب مشروع Grunt. يحتوي هذا الملف على تعريفات المهام والتكوينات اللازمة لتشغيل Grunt. لفهم Gruntfile.js، يجب أن تكون على دراية بالمفاهيم التالية:

  • المكونات الإضافية (Plugins): Grunt يعتمد على المكونات الإضافية لتوسيع وظائفه. يتم تثبيت المكونات الإضافية باستخدام npm (مدير حزم Node.js). مثال على مكون إضافي شائع هو [uglify]، الذي يستخدم لتصغير ملفات JavaScript.
  • المهام (Tasks): المهام هي وحدات العمل الأساسية في Grunt. يمكن أن تكون المهام بسيطة مثل تشغيل أمر سطر الأوامر أو معقدة مثل معالجة مجموعة من الملفات.
  • الأهداف (Targets): الأهداف تسمح لك بتحديد إصدارات مختلفة من مهمة واحدة. على سبيل المثال، يمكنك تعريف هدف "dev" للإصدار التجريبي وهدف "prod" للإصدار النهائي.
  • التكوين (Configuration): التكوين يحدد الإعدادات المستخدمة بواسطة المهام. يمكن أن يتضمن التكوين مسارات الملفات، وخيارات التصغير، وإعدادات الاختبار.
مثال بسيط لـ Gruntfile.js
الشرح
بداية تعريف Gruntfile.js
تهيئة Grunt
تعريف مهمة تصغير الملفات
خيارات مهمة التصغير
إضافة تعليق في بداية الملف
نهاية خيارات مهمة التصغير
تعريف الملفات المراد تصغيرها
توسيع الملفات
ملفات المصدر
مجلد الوجهة
إعادة تسمية الملفات
استبدال لاحقة الملف بـ .min.js
نهاية إعادة تسمية الملفات
نهاية تعريف الملفات
نهاية مهمة التصغير
تعريف مهمة المراقبة
الملفات المراد مراقبتها
المهام التي يتم تشغيلها عند تغيير الملفات
نهاية مهمة المراقبة
نهاية تهيئة Grunt
نهاية تعريف Gruntfile.js

المهام الشائعة في Grunt

هناك العديد من المهام المتاحة في Grunt. بعض المهام الأكثر شيوعًا تشمل:

  • Uglify: تصغير ملفات JavaScript لتقليل حجمها. [Uglify Plugin]
  • Concat: دمج ملفات متعددة في ملف واحد. [Concat Plugin]
  • Minify CSS: تصغير ملفات CSS لتقليل حجمها. [Minify CSS Plugin]
  • JSHint: التحقق من أخطاء JavaScript. [JSHint Plugin]
  • Watch: مراقبة الملفات وتشغيل المهام تلقائيًا عند تغييرها. [Watch Plugin]
  • Copy: نسخ الملفات والمجلدات. [Copy Plugin]
  • Clean: حذف الملفات والمجلدات. [Clean Plugin]

استخدام وثائق Grunt بفعالية

  • البحث: استخدم وظيفة البحث في الوثائق للعثور على المعلومات التي تحتاجها بسرعة.
  • الأمثلة: راجع الأمثلة العملية لفهم كيفية استخدام المهام المختلفة.
  • المراجع: استخدم المراجع للحصول على معلومات مفصلة حول خيارات التكوين المتاحة.
  • المجتمع: شارك في مجتمع Grunt لطرح الأسئلة والحصول على المساعدة. [StackOverflow Grunt Tag]

استراتيجيات متقدمة

  • التكوين الديناميكي: استخدام متغيرات Grunt لإنشاء تكوينات مرنة.
  • المهام المخصصة: إنشاء مهام مخصصة لتلبية احتياجاتك الخاصة.
  • التكامل مع أدوات أخرى: دمج Grunt مع أدوات التطوير الأخرى مثل Bower و Gulp و Webpack.
  • تحسين الأداء: تحسين أداء Grunt من خلال استخدام التوازي والتخزين المؤقت.

روابط ذات صلة (تحليل فني واستراتيجيات تداول)

روابط ذات صلة (أدوات و تقنيات تطوير الويب)

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер