it-swarm.asia

أفضل استراتيجية تجميع / تصغير CSS و JS لـ D7

يحتوي Drupal 6 على وحدة advagg الرائعة ، والتي تؤدي وظيفة رائعة = بذكاء تجميع CSS و JS ، ولكن لا يوجد حاليًا إصدار D7.

ما أتطلع إلى تحقيقه هو:

  • ملفات CSS و JS أقل (5 ملفات CSS و 5 JS كثيرة جدًا)
  • ملفات JS لديها تصغير (الأساسية الحالية فقط تفعل ذلك ل CSS)

هل هناك حل drupal 7 حل سيساعد هنا؟ ما هي تجربة الآخرين في تحسين ذلك؟


تحرير: تم نشر السؤال في الأصل في عام 2011. يوجد الآن إصدار D7 مستقر جدًا من advagg .

8
wiifm

بالنسبة إلى D7 ، هناك Core Library التي تحتوي على وضع التعلم الذي يتم تجميعه استنادًا إلى إحصاءات واقعية حول موقعك.

إذا كنت تريد أن تدمر كل شيء في مجموع عملاق واحد ، فقد قمت بكتابة مقال مع بعض نماذج التعليمات البرمجية:

/**
 * Implements hook_js_alter().
 */
function mymodule_js_alter(&$javascript) {
  uasort($javascript, 'drupal_sort_css_js');
  $i = 0;
  foreach ($javascript as $name => $script) {
    $javascript[$name]['weight'] = $i++;
    $javascript[$name]['group'] = JS_DEFAULT;
    $javascript[$name]['every_page'] = FALSE;
  }
}

/**
 * Implements hook_css_alter().
 */
function mymodule_css_alter(&$css) {
  uasort($css, 'drupal_sort_css_js');
  $i = 0;
  foreach ($css as $name => $style) {
    $css[$name]['weight'] = $i++;
    $css[$name]['group'] = CSS_DEFAULT;
    $css[$name]['every_page'] = FALSE;
  }
}

Drupal.org العدد # 1034208 يقترح أيضًا تخفيف متطلبات الترتيب الصارمة قليلاً.

12
Dylan Tack

يتم تطوير AdvAgg D7. خيارات أخرى (الاقتباسات المدرجة هي من صفحات مشروعهم):

... يسمح بالتصغير الفوري لجافا سكريبت للموقع باستخدام uglify.js. تعتمد الوحدة على خدمة ويب (uglify.me) بشكل افتراضي للقيام بالتصغير بحيث لا تحتاج إلى إجراء أي معالجة مسبقة على الخادم الخاص بك للاستمتاع بمزايا JavaScript المصغرة.

... مصمم للمساعدة في تسريع أداء الواجهة الأمامية في الموقع. في الإصدار الأول من الوحدة النمطية Speedy ، توفر إصدارات مصغرة من ملفات JavaScript الأساسية التي لم يتم تصغيرها بالفعل. على سبيل المثال ، يتم توفير نسخة مصغرة من drupal.js بينما لا يتم توفير jquery.js (تم تصغيره بالفعل).

3
mikeytown2