Vercel, Next.js 16.3 ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದೆ, Turbopack ಮತ್ತು Partial Prerendering ಅನ್ನು ಪ್ರಯೋಗಾತ್ಮಕ ಹಂತದಿಂದ (experimental) ಹೊರತೆಗೆದು ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ (production-ready) ಮೋಡ್ಗೆ ತಂದಿದೆ. ಈ ಅಪ್ಗ್ರೇಡ್ ಮಧ್ಯಮ ಗಾತ್ರದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಎರಡು ಪಟ್ಟು ಇಂದ ಐದು ಪಟ್ಟು ವೇಗವಾಗಿ ಬಿಲ್ಡ್ಗಳನ್ನು ನೀಡುವ ಭರವಸೆ ನೀಡುತ್ತದೆ ಮತ್ತು ಪೇಜ್-ಲೋಡ್ ವೇಗವು Time to Interactive ಅನ್ನು 40-60% ರಷ್ಟು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ—ಫೀಚರ್ಗಳನ್ನು ವೇಗವಾಗಿ ಬಿಡುಗಡೆ ಮಾಡಲು ಶ್ರಮಿಸುವ ಯಾವುದೇ ತಂಡಕ್ಕೆ ಇದು ಗಮನಾರ್ಹ ಹೆಚ್ಚಳವಾಗಲಿದೆ.
ಈ ಬದಲಾವಣೆ ಈಗ ಏಕೆ ಮುಖ್ಯ?
Next.js ದೀರ್ಘಕಾಲದವರೆಗೆ ಡೆವಲಪ್ಮೆಂಟ್ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್ ಬಿಲ್ಡ್ಗಳಿಗಾಗಿ JavaScript ನಲ್ಲಿ ಬರೆಯಲಾದ JavaScript ಬಂಡಲರ್ ಆದ Webpack ಅನ್ನು ಅವಲಂಬಿಸಿತ್ತು. ಕಳೆದ ಒಂದು ವರ್ಷದಲ್ಲಿ, Vercel ತಂಡವು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮತ್ತು ಬಿಲ್ಡ್ಗಳನ್ನು ವೇಗಗೊಳಿಸುವ Rust-ಆಧಾರಿತ ಪರ್ಯಾಯವಾದ Turbopack ಅನ್ನು ಪರಿಷ್ಕರಿಸಿದೆ. ಅದೇ ಸಮಯದಲ್ಲಿ, ಅವರು ಸ್ಟ್ಯಾಟಿಕ್ HTML ಅನ್ನು ಡೈನಾಮಿಕ್ ಕಂಟೆಂಟ್ನೊಂದಿಗೆ ಬೆರೆಸುವ ವಿಧಾನವಾಗಿ Partial Prerendering (PPR) ಅನ್ನು ಪರೀಕ್ಷಿಸಿದರು, ಆದರೆ ಡೆವಲಪರ್ಗಳು ಇದನ್ನು ಕೇವಲ "opt-in-experiment" ಆಗಿ ಮಾತ್ರ ಬಳಸಬೇಕಿತ್ತು. ಇವೆರಡನ್ನೂ ಸ್ಟೇಬಲ್ (stable) ಹಂತಕ್ಕೆ ಏರಿಸುವ ಮೂಲಕ, Vercel ಪ್ರೊಡಕ್ಷನ್ ತಂಡಗಳಿಗೆ ಯಾವುದೇ ಪ್ರಯೋಗ-ದೋಷಗಳಿಲ್ಲದೆ (trial-and-error) ಸಿದ್ಧಪಡಿಸಿದ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅಪ್ಗ್ರೇಡ್ ಅನ್ನು ನೀಡುತ್ತದೆ.
Turbopack ಈಗ ಸ್ಟೇಬಲ್ ಆಗಿದೆ
- ವೇಗ (Speed): ಮಧ್ಯಮ ಗಾತ್ರದ ರೆಪೊಸಿಟರಿಗಳಲ್ಲಿ ಪ್ರೊಡಕ್ಷನ್ ಬಿಲ್ಡ್ಗಳು ಈಗ ಎರಡು ಪಟ್ಟು ಇಂದ ಐದು ಪಟ್ಟು ವೇಗವಾಗಿ ಚಲಿಸುತ್ತವೆ.
- ಮೆಮೊರಿ (Memory): ಇದು ದೊಡ್ಡ ಕೋಡ್ಬೇಸ್ಗಳ ಮೇಲಿನ ಮೆಮೊರಿ ಒತ್ತಡವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ (Activation):
next.config.jsಗೆturbo: trueಅನ್ನು ಸೇರಿಸಿ, ಅಷ್ಟೇ.
ಇದರ ಬದಲಾಗಿ ಸ್ವಲ್ಪ ಕಟ್ಟುನಿಟ್ಟಾದ ಪರಿಸರವನ್ನು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ. Turbopack ಗೆ Node 18.17 ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೊಸ ವರ್ಷ ಬೇಕು, ಮತ್ತು ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಅವಲಂಬಿಸಿರುವ ಯಾವುದೇ ಕಸ್ಟಮ್ Webpack ಪ್ಲಗಿನ್ಗಳು Turbopack ಅಡಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದಿಲ್ಲ. ವ್ಯಾಪಕವಾದ ಪ್ಲಗಿನ್ ಪೈಪ್ಲೈನ್ಗಳನ್ನು ಹೊಂದಿರುವ ತಂಡಗಳು ಈ ಬದಲಾವಣೆಯನ್ನು ಮಾಡುವ ಮೊದಲು ಆ ಎಕ್ಸ್ಟೆನ್ಶನ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಬೇಕು ಅಥವಾ ಮರುಬರೆಯಬೇಕು.
Server Actions ಈಗ ಇನ್ನಷ್ಟು ಸುಗಮವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತವೆ
Server Actions—ಸರ್ವರ್ನಲ್ಲಿ ಚಲಿಸುವ ಆದರೆ ಕ್ಲೈಂಟ್ನಿಂದ ಕರೆಯಲ್ಪಡುವ ಫಂಕ್ಷನ್ಗಳು—ಈಗ ಹೆಚ್ಚು ಸುಧಾರಿತ TypeScript ಇಂಟಿಗ್ರೇಶನ್ ಅನ್ನು ಹೊಂದಿವೆ. ಕಾಂಪೈಲರ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಟೈಪ್ಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ (infers), ಆದ್ದರಿಂದ ಡೆವಲಪರ್ಗಳು ಕೈಬರಹದ ಟೈಪ್ ಅ𝗻ೋಟೇಶನ್ಗಳನ್ನು (type annotations) ಬಳಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಇದು ನೆಸ್ಟೆಡ್ ಆಬ್ಜೆಕ್ಟ್ಗಳು ಮತ್ತು Zod ಸ್ಕೀಮಾಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ, ಇದರಿಂದ ರನ್ಟೈಮ್ ವ್ಯತ್ಯಾಸಗಳು ಕಡಿಮೆಯಾಗುತ್ತವೆ. ಹೊಸ ಫೈಲ್-ಸಿಸ್ಟಮ್ ನಿಯಮಗಳು ಆಕ್ಷನ್ ರೆಸಲ್ಯೂಶನ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿಸುತ್ತವೆ, ಇದು ಅಸ್ಪಷ್ಟ ಇಂಪೋರ್ಟ್ಗಳಿಂದ ಉಂಟಾಗುವ ಸಣ್ಣ ತಪ್ಪುಗಳನ್ನು (bugs) ತಪ್ಪಿಸಲು ಡೆವಲಪರ್ಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
Partial Prerendering (PPR) ಈಗ ಪ್ರೊಡಕ್ಷನ್-ರೆಡಿ ಆಗಿದೆ
PPR ಒಂದು ಪೇಜ್ ಅನ್ನು ಒಂದೇ ಬಾರಿಗೆ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ; ಬದಲಾಗದ ಭಾಗಗಳಿಗೆ ಸ್ಟ್ಯಾಟಿಕ್ HTML ಅನ್ನು ನೀಡುತ್ತದೆ ಮತ್ತು ಡೈನಾಮಿಕ್ ವಿಭಾಗಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಹೈಡ್ರೇಟ್ (hydrate) ಮಾಡುತ್ತದೆ. ಸ್ಟ್ಯಾಟಿಕ್ ಮಾರ್ಕಪ್ ತಕ್ಷಣವೇ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ; ನಂತರ ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ ಫೆಚ್ (background fetch) ಇಂಟರಾಕ್ಟಿವ್ ಭಾಗಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು Time to Interactive (TTI) ಅನ್ನು 40–60% ರಷ್ಟು ಸುಧಾರಿಸುತ್ತದೆ.
PPR ಅನ್ನು ಅಳವಡಿಸುವುದು ಸರಳವಾಗಿದೆ: ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸ್ಟ್ಯಾಟಿಕ್ ಜನರೇಷನ್ API ಬಳಸಿ ಸ್ಟ್ಯಾಟಿಕ್ ಭಾಗಗಳನ್ನು ಗುರುತಿಸಿ, ಮತ್ತು ಡೈನಾಮಿಕ್ ಭಾಗಗಳನ್ನು ಕ್ಲೈಂಟ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ಗೆ ಬಿಡಿ. ಸ್ಟ್ಯಾಟಿಕ್ HTML ಪೂರ್ಣ ಡಾಕ್ಯುಮೆಂಟ್ ಆಗಿ ಬರುವುದರಿಂದ, ಯಾವುದೇ JavaScript ಚಲಿಸುವ ಮೊದಲೇ ಬ್ರೌಸರ್ ರೆಂಡರಿಂಗ್ ಪ್ರಾರಂಭಿಸಬಹುದು, ಇದು ನಿಧಾನಗತಿಯ ನೆಟ್ವರ್ಕ್ಗಳಲ್ಲಿ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಇತರ ಗಮನಾರ್ಹ ಬದಲಾವಣೆಗಳು
- ಇಮೇಜ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (Image optimization): ಈಗ LCP (Largest Contentful Paint) ಇಮೇಜ್ಗಳ ಮೇಲೆ
fetchPriorityಅನ್ನು ಸೆಟ್ ಮಾಡಬಹುದು, ಇದು ಬ್ರೌಸರ್ ಮೊದಲು ಹೀರೋ ಇಮೇಜ್ ಅನ್ನು ಫೆಚ್ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. - ಫಾಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ (Font handling):
next/fontಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಕ್ಷರಗಳ ಸಬ್ಸೆಟ್ಗಳನ್ನು ಮಾಡುತ್ತದೆ, ಇದರಿಂದ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಕಾನ್ಫಿಗರೇಶನ್ ಇಲ್ಲದೆ ಪೇಲೋಡ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು. - Middleware: ಮ್ಯಾಚಿಂಗ್ ಇಂಜಿನ್ ಅನ್ನು Rust ನಲ್ಲಿ ಮರುಬರೆಯಲಾಗಿದೆ, ಇದು ವೇಗವಾದ ರೂಟ್ ಚೆಕ್ಗಳನ್ನು ನೀಡುತ್ತದೆ. Middleware ಈಗ ಪೂರ್ಣ HTML ರೆಸ್ಪಾನ್ಸ್ಗಳನ್ನು ನೀಡಬಹುದು, ಇದು ಎಡ್ಜ್-ರೆಂಡರ್ಡ್ ಪೇಜ್ಗಳಿಗೆ (edge-rendered pages) ದಾರಿ ಮಾಡಿಕೊಡುತ್ತದೆ.
ತಂಡಗಳಿಗಾಗಿ ತಕ್ಷಣದ ಕ್ರಮಗಳು
- Turbopack ಅನ್ನು ಆನ್ ಮಾಡಿ: ಡೆವಲಪ್ಮೆಂಟ್ನಲ್ಲಿ ಇದನ್ನು ಆನ್ ಮಾಡಿ;
turboಫ್ಲಾಗ್ ಸೆಟ್ ಮಾಡಿದ ನಂತರ ಇದು ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿಯೂ ಅದೇ ರೀತಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ. - Node ಅನ್ನು ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿ: Node ಅನ್ನು ವರ್ಷನ್ 20 ಅಥವಾ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದಕ್ಕೆ ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿ.
- Server Actions ಅನ್ನು ಪರಿಶೀಲಿಸಿ: ಟೈಪ್-ಇನ್ಫರೆನ್ಸ್ (type-inference) ಪ್ರಯೋಜನಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಿ; ಈಗ ಅನಗತ್ಯವಾಗಿರುವ ಯಾವುದೇ ಮ್ಯಾನುಯಲ್ ಅ𝗻ೋಟೇಶನ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.
- Partial Prerendering ಅನ್ನು ಪೈಲಟ್ ಮಾಡಿ: ಇಡೀ ಸೈಟ್ಗೆ ಅಳವಡಿಸುವ ಮೊದಲು, TTI ಸುಧಾರಣೆಯನ್ನು ಅಳೆಯಲು ಒಂದೇ ಒಂದು ಹೈ-ಟ್ರ್ಯಾಫಿಕ್ ರೂಟ್ನಲ್ಲಿ ಇದನ್ನು ಪೈಲಟ್ ಮಾಡಿ.
ಎಚ್ಚರಿಕೆಗಳು ಮತ್ತು ವಿರೋಧಾಭಾಸಗಳು
ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಲಾಭಗಳು ಹೊಸ ರನ್ಟೈಮ್ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸುವುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ. ಹಳೆಯ Node ವರ್ಷನ್ಗಳಲ್ಲಿ ಸಿಲುಕಿಕೊಂಡಿರುವ ಅಥವಾ ಕಸ್ಟಮ್ Webpack ಪ್ಲಗಿನ್ಗಳನ್ನು ಹೆಚ್ಚಾಗಿ ಬಳಸುವ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ತೊಂದರೆಯನ್ನು ಎದುರಿಸಬಹುದು.
ಸಾರಾಂಶ (Bottom line): Next.js 16.3 ಡೆವಲಪರ್ಗಳಿಗೆ ಪ್ರೊಡಕ್ಷನ್-ಗ್ರೇಡ್, Rust-ಚಾಲಿತ ಬಂಡಲರ್ ಮತ್ತು ಸ್ಟ್ಯಾಟಿಕ್ ಹಾಗೂ ಡೈನಾಮಿಕ್ ಕಂಟೆಂಟ್ ಅನ್ನು ಬೆರೆಸಲು ಸಾಬೀತಾದ ವಿಧಾನವನ್ನು ನೀಡುತ್ತದೆ. ಈಗಲೇ ಹೊಸ ಡಿಫಾಲ್ಟ್ಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ, ಕಾಂಪ್ಯಾಟಿಬಿಲಿಟಿ ಅಂತರಗಳನ್ನು ಸರಿಪಡಿಸಿ, ಆಗ ಬಿಲ್ಡ್ಗಳು ವೇಗವಾಗಿ ಮುಗಿಯುವುದನ್ನು ಮತ್ತು ಪೇಜ್ಗಳು ಬಳಕೆದಾರರಿಗೆ ಗಮನಾರ್ಹವಾಗಿ ವೇಗವಾಗಿ ಕಾಣಿಸುವುದನ್ನು ನೀವು ನೋಡುವಿರಿ.
