تحليل حجم الحزمة
حلّل حجم حزمة JavaScript الخاصة بتطبيقك وقلّله لتسريع تحميل الصفحات الأولي وتحسين الأداء.
تحليل حجم الحزمة درس مجاني في Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Next.js 15 Fullstack (App Router + Server Actions)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What is a JavaScript Bundle?
When you build a Next.js application for production, all your JavaScript code – your components, libraries, and Next.js itself – gets combined and optimized into one or more files called "bundles".
These bundles are what the user's browser downloads to run your application.
Impact on Performance
The larger your JavaScript bundles are, the longer it takes for a user's browser to download, parse, and execute them.
- Slower Load Times: Users wait longer for your app to become interactive.
- Higher Data Usage: Especially important for mobile users on limited data plans.
- Worse User Experience: Can lead to frustration and users abandoning your site.
Analyzing Your Build Output
Next.js provides useful information when you run next build. It shows the size of each page's JavaScript bundle.
However, for a deeper look into what's inside those bundles, you need specialized tools.
next buildVisualizing Bundles with Analyzer
The @next/bundle-analyzer package is a powerful tool. It creates an interactive treemap visualization of your bundles.
This visual map helps you quickly identify large modules or third-party libraries that contribute significantly to your bundle size.
Configuring the Analyzer
First, install the package:
npm install --save-dev @next/bundle-analyzer
Then, update your next.config.js to enable it conditionally:
const withBundleAnalyzer = require('@next/bundle-analyzer')({
enabled: process.env.ANALYZE === 'true',
openAnalyzer: false,
});
module.exports = withBundleAnalyzer({});Generating the Bundle Report
To generate the report, you need to set the ANALYZE environment variable and then run your Next.js build command.
This will create HTML files in your .next/analyze folder that you can open in your browser.
ANALYZE=true npm run buildWhat Makes Bundles Large?
Several factors can lead to an oversized bundle:
- Large Libraries: Importing an entire library when you only use a small part.
- Duplicate Code: Different parts of your app importing the same module.
- Unused Code: Code that's included but never executed (dead code).
- Heavy Assets: Inline SVG or base64 images directly in JS files.
Splitting Code for Efficiency
Code splitting is a technique that breaks your code into smaller "chunks" that can be loaded on demand. Next.js does this automatically for pages.
For components within a page, you can use dynamic imports to load them only when needed, reducing the initial bundle size.
Lazily Loading Components
Use next/dynamic to import components only when they are rendered. This is perfect for components that aren't critical for the initial page load, like modals or admin panels.
import dynamic from 'next/dynamic';
const LazyComponent = dynamic(() => import('../components/HeavyComponent'), {
loading: () => <p>Loading...</p>,
});
function MyPage() {
return (
<div>
<h1>My Page</h1>
<LazyComponent />
</div>
);
}Quick Check: Bundle Optimization
Consider a Next.js application that has grown significantly. Which of the following strategies are effective for reducing the initial JavaScript bundle size?
Summary of Bundle Optimization
Great job! You've learned how to analyze your Next.js application's JavaScript bundle size and implement key optimization techniques.
- Use
@next/bundle-analyzerto visualize your bundles. - Implement dynamic imports for non-critical components.
- Be mindful of large third-party libraries and ensure tree-shaking is effective.
Optimizing bundle size is crucial for delivering a fast and responsive user experience.
الأسئلة الشائعة
هل درس «تحليل حجم الحزمة» مجاني؟
نعم — نص درس «تحليل حجم الحزمة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Next.js 15 Fullstack (App Router + Server Actions)، انتقل إلى CoddyKit PRO. تتضمن دورة Next.js 15 Fullstack (App Router + Server Actions) 4 دروس في المجموع.
ماذا ستتعلم في «تحليل حجم الحزمة»؟
حلّل حجم حزمة JavaScript الخاصة بتطبيقك وقلّله لتسريع تحميل الصفحات الأولي وتحسين الأداء. تتمرن على Next.js 15 Fullstack (App Router + Server Actions) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Next.js 15 Fullstack (App Router + Server Actions)؟
لا تُشترط خبرة سابقة. Next.js 15 Fullstack (App Router + Server Actions) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تحليل حجم الحزمة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Next.js 15 Fullstack (App Router + Server Actions) هذا؟
نعم. كل درس في Next.js 15 Fullstack (App Router + Server Actions) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تحسين الصور والخطوط
- تحليل حجم الحزمة
- استراتيجيات التخزين المؤقت المتقدمة
- بث واجهة المستخدم باستخدام Suspense وحالات التحميل