{"id":1003,"date":"2025-11-20T18:17:06","date_gmt":"2025-11-20T15:17:06","guid":{"rendered":""},"modified":"2025-11-20T18:25:26","modified_gmt":"2025-11-20T15:25:26","slug":"%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%aa%d8%b1%d8%ad%d9%8a%d9%84-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-next-js-%d9%85%d9%86-%d8%a7%d9%84%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-14-%d8%a5%d9%84%d9%89-%d8%a7%d9%84%d8%a5","status":"publish","type":"post","link":"https:\/\/khaledshs.com\/ar\/%d8%a7%d9%84%d8%af%d8%b1%d9%88%d8%b3-%d8%a7%d9%84%d8%aa%d8%b9%d9%84%d9%8a%d9%85%d9%8a%d8%a9\/%d9%83%d9%8a%d9%81%d9%8a%d8%a9-%d8%aa%d8%b1%d8%ad%d9%8a%d9%84-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82-next-js-%d9%85%d9%86-%d8%a7%d9%84%d8%a5%d8%b5%d8%af%d8%a7%d8%b1-14-%d8%a5%d9%84%d9%89-%d8%a7%d9%84%d8%a5\/","title":{"rendered":"\u0643\u064a\u0641\u064a\u0629 \u062a\u0631\u062d\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Next.js \u0645\u0646 \u0627\u0644\u0625\u0635\u062f\u0627\u0631 14 \u0625\u0644\u0649 \u0627\u0644\u0625\u0635\u062f\u0627\u0631 15"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1152\" height=\"768\" src=\"https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15.png\" alt=\"\" class=\"wp-image-998\" srcset=\"https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15.png 1152w, https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15-300x200.png 300w, https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15-1024x683.png 1024w, https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15-768x512.png 768w, https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15-320x213.png 320w\" sizes=\"(max-width: 1152px) 100vw, 1152px\" \/><\/figure>\n\n<h2 class=\"wp-block-heading\">\u0645\u0642\u062f\u0645\u0629<\/h2>\n\n<p>\u064a\u0642\u062f\u0645 Next.js 15 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u062f\u0627\u0621\u060c \u0648\u0633\u0644\u0648\u0643 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a\u060c \u0648\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0644\u062a\u0648\u062c\u064a\u0647\u060c \u0648\u062a\u0643\u0627\u0645\u0644 TurboPack. \u064a\u0645\u0643\u0646 \u0639\u0627\u062f\u0629\u064b \u062a\u0631\u0642\u064a\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0645\u0628\u0646\u064a\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Next.js 14 \u0628\u0633\u0644\u0627\u0633\u0629\u060c \u0648\u0644\u0643\u0646 \u0627\u0644\u0639\u0645\u0644\u064a\u0629 \u0644\u0627 \u062a\u0632\u0627\u0644 \u062a\u062a\u0637\u0644\u0628 \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u0643\u0648\u064a\u0646 \u0648\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0623\u0646\u0645\u0627\u0637 \u0627\u0644\u0645\u0647\u062c\u0648\u0631\u0629. \u064a\u0648\u0641\u0631 \u0647\u0630\u0627 \u0627\u0644\u062f\u0644\u064a\u0644 \u0633\u064a\u0631 \u0639\u0645\u0644 \u0648\u0627\u0636\u062d \u062e\u0637\u0648\u0629 \u0628\u062e\u0637\u0648\u0629 \u0644\u062a\u0631\u062d\u064a\u0644 \u062a\u0637\u0628\u064a\u0642 Next.js 14 \u0627\u0644\u062d\u0627\u0644\u064a \u0625\u0644\u0649 Next.js 15.  <\/p>\n\n<h2 class=\"wp-block-heading\">\u0627\u0644\u0645\u062a\u0637\u0644\u0628\u0627\u062a \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h2>\n\n<p>\u0642\u0628\u0644 \u0627\u0644\u0628\u062f\u0621\u060c \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0644\u062f\u064a\u0643:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\u062a\u0637\u0628\u064a\u0642 Next.js 14 \u0642\u064a\u062f \u0627\u0644\u062a\u0634\u063a\u064a\u0644<\/li>\n\n\n\n<li>Node.js 18.18+ \u0623\u0648 20+ \u0623\u0648 22+<\/li>\n\n\n\n<li>Git \u0644\u0644\u062a\u062d\u0643\u0645 \u0641\u064a \u0627\u0644\u0625\u0635\u062f\u0627\u0631\u0627\u062a<\/li>\n\n\n\n<li>\u0625\u0644\u0645\u0627\u0645 \u0628\u0646\u0645\u0648\u0630\u062c \u062a\u0648\u062c\u064a\u0647 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0648\u0639\u0631\u0636 \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062a<\/li>\n<\/ul>\n\n<h2 class=\"wp-block-heading\">1. \u0645\u0631\u0627\u062c\u0639\u0629 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0627\u0644\u0625\u0635\u062f\u0627\u0631<\/h2>\n\n<p>\u0642\u0628\u0644 \u0627\u0644\u062a\u0631\u0642\u064a\u0629\u060c \u0631\u0627\u062c\u0639 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0625\u0635\u062f\u0627\u0631 Next.js \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0623\u062d\u062f\u062b \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0648\u0627\u0644\u062a\u0648\u062c\u064a\u0647\u0627\u062a: \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0625\u0635\u062f\u0627\u0631 Next.js: <a href=\"https:\/\/nextjs.org\/docs\/app\/building-your-application\/upgrading\" title=\"\">\u0648\u062b\u0627\u0626\u0642 Next.js<\/a><\/p>\n\n<p>\u0642\u0628\u0644 \u0627\u0644\u062a\u0631\u0642\u064a\u0629\u060c \u0631\u0627\u062c\u0639 \u0645\u0644\u0627\u062d\u0638\u0627\u062a \u0625\u0635\u062f\u0627\u0631 Next.js \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0644\u0644\u062a\u062d\u0642\u0642 \u0645\u0646:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\u0642\u064a\u0645 \u0627\u0644\u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0645\u0647\u062c\u0648\u0631\u0629<\/li>\n\n\n\n<li>\u062a\u062d\u062f\u064a\u062b\u0627\u062a \u0623\u0646\u0638\u0645\u0629 \u0627\u0644\u062a\u0648\u062c\u064a\u0647<\/li>\n\n\n\n<li>\u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0641\u064a \u062e\u0637 \u0623\u0646\u0627\u0628\u064a\u0628 \u0627\u0644\u0639\u0631\u0636 \u0648\u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a<\/li>\n<\/ul>\n\n<p>\u0641\u0647\u0645 \u0647\u0630\u0647 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u064a\u0633\u0627\u0639\u062f \u0641\u064a \u0645\u0646\u0639 \u0627\u0644\u0645\u0634\u0643\u0644\u0627\u062a \u0627\u0644\u0645\u062a\u0639\u0644\u0642\u0629 \u0628\u0627\u0644\u062a\u0631\u062d\u064a\u0644.<\/p>\n\n<h2 class=\"wp-block-heading\">2. \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a \u0627\u0644\u0623\u0633\u0627\u0633\u064a\u0629<\/h2>\n\n<p>\u0631\u0627\u062c\u0639 \u0648\u062b\u0627\u0626\u0642 Next.js \u0627\u0644\u0631\u0633\u0645\u064a\u0629 \u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u062a\u0639\u0644\u064a\u0645\u0627\u062a \u0627\u0644\u062a\u062b\u0628\u064a\u062a \u0627\u0644\u0645\u062d\u062f\u062b\u0629: <a href=\"https:\/\/nextjs.org\/docs\" target=\"_blank\" rel=\"noopener\" title=\"\">\u0648\u062b\u0627\u0626\u0642 Next.js<\/a> <\/p>\n\n<p>\u0644\u062a\u0631\u0642\u064a\u0629 \u0627\u0644\u0625\u0637\u0627\u0631\u060c \u0642\u0645 \u0628\u062a\u062d\u062f\u064a\u062b Next.js \u0648React \u0648React DOM: \u0642\u0645 \u0628\u062a\u0631\u0642\u064a\u0629 Next.js \u0648React \u0648React DOM:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm install next@latest react@latest react-dom@latest<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">next@latest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">react@latest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">react-dom@latest<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0623\u0648 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 yarn:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>yarn add next@latest react@latest react-dom@latest<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">yarn<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">add<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">next@latest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">react@latest<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">react-dom@latest<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0642\u0645 \u0628\u062a\u0634\u063a\u064a\u0644:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm install<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0647\u0630\u0627 \u064a\u0636\u0645\u0646 \u062a\u0648\u0627\u0641\u0642 \u062c\u0645\u064a\u0639 \u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a \u0627\u0644\u062b\u0627\u0646\u0648\u064a\u0629 \u0645\u0639 \u0623\u062d\u062f\u062b \u0625\u0635\u062f\u0627\u0631.<\/p>\n\n<h2 class=\"wp-block-heading\">3. \u062a\u062d\u062f\u064a\u062b next.config.js<\/h2>\n\n<p>\u064a\u0642\u062f\u0645 Next.js 15 \u0625\u0639\u062f\u0627\u062f\u0627\u062a \u0627\u0641\u062a\u0631\u0627\u0636\u064a\u0629 \u0645\u062d\u0633\u0646\u0629 \u0648\u064a\u0632\u064a\u0644 \u0627\u0644\u0623\u0639\u0644\u0627\u0645 \u0627\u0644\u062a\u062c\u0631\u064a\u0628\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629.<\/p>\n\n<p>\u064a\u0628\u062f\u0648 \u0627\u0644\u062a\u0643\u0648\u064a\u0646 \u0627\u0644\u0646\u0638\u064a\u0641 \u0643\u0645\u0627 \u064a\u0644\u064a:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/** @type {import('next').NextConfig} *\/\nconst nextConfig = {\n reactStrictMode: true,\n experimental: {\n serverActions: true\n }\n};\n\nmodule.exports = nextConfig;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\">\/** <\/span><span style=\"color: #ECEFF4\">@<\/span><span style=\"color: #8FBCBB\">type<\/span><span style=\"color: #616E88\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #616E88\">import('next').NextConfig<\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #616E88\"> *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">nextConfig<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">reactStrictMode<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">experimental<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #88C0D0\">serverActions<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #8FBCBB\">module<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #8FBCBB\">exports<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">nextConfig<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0642\u0645 \u0628\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062e\u064a\u0627\u0631\u0627\u062a \u0627\u0644\u0645\u0647\u062c\u0648\u0631\u0629 \u0645\u062b\u0644 \u0623\u0639\u0644\u0627\u0645 TurboPack \u0627\u0644\u0642\u062f\u064a\u0645\u0629.<\/p>\n\n<h2 class=\"wp-block-heading\">4. \u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0628\u0646\u064a\u0629 \u0645\u0648\u062c\u0647 \u0627\u0644\u062a\u0637\u0628\u064a\u0642<\/h2>\n\n<p>\u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0641\u0647\u0645 \u0623\u0639\u0645\u0642 \u0644\u0623\u0633\u0627\u0633\u064a\u0627\u062a \u0645\u0648\u062c\u0647 \u0627\u0644\u062a\u0637\u0628\u064a\u0642 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u0629 \u0641\u064a \u0643\u0644 \u0645\u0646 Next.js 14 \u064815\u060c \u0631\u0627\u062c\u0639 \u062f\u0644\u064a\u0644\u0646\u0627: <a href=\"https:\/\/khaledshs.com\/ar\/%d8%a7%d9%84%d8%af%d8%b1%d9%88%d8%b3-%d8%a7%d9%84%d8%aa%d8%b9%d9%84%d9%8a%d9%85%d9%8a%d8%a9\/%d8%a5%d8%aa%d9%82%d8%a7%d9%86-%d9%85%d9%88%d8%ac%d9%87-%d8%aa%d8%b7%d8%a8%d9%8a%d9%82%d8%a7%d8%aa-next-js-%d9%85%d9%86-%d8%a7%d9%84%d8%b5%d9%81%d8%ad%d8%a7%d8%aa-%d8%a5%d9%84%d9%89-%d8%a7%d9%84\/\" target=\"_blank\" rel=\"noopener\" title=\"&#x625;&#x62A;&#x642;&#x627;&#x646; &#x645;&#x648;&#x62C;&#x647; &#x62A;&#x637;&#x628;&#x64A;&#x642;&#x627;&#x62A; Next.js: &#x645;&#x646; &#x627;&#x644;&#x635;&#x641;&#x62D;&#x627;&#x62A; &#x625;&#x644;&#x649; &#x627;&#x644;&#x62A;&#x62E;&#x637;&#x64A;&#x637;&#x627;&#x62A;\">\u0625\u062a\u0642\u0627\u0646 \u0645\u0648\u062c\u0647 \u062a\u0637\u0628\u064a\u0642 Next.js<\/a><\/p>\n\n<p>\u0625\u0630\u0627 \u0643\u0627\u0646 \u062a\u0637\u0628\u064a\u0642\u0643 \u064a\u0633\u062a\u062e\u062f\u0645 \u0645\u0648\u062c\u0647 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u060c \u062a\u062d\u0642\u0642 \u0645\u0646:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\u0643\u0644 \u062c\u0632\u0621 \u064a\u062d\u062a\u0648\u064a \u0639\u0644\u0649 \u0645\u0644\u0641\u0627\u062a <code>page.tsx<\/code> \u0648<code>layout.tsx<\/code> \u0635\u0627\u0644\u062d\u0629<\/li>\n\n\n\n<li>\u0645\u0643\u0648\u0646\u0627\u062a \u0627\u0644\u062e\u0627\u062f\u0645 \u0644\u0627 \u062a\u0633\u062a\u0648\u0631\u062f \u0648\u0627\u062c\u0647\u0627\u062a \u0628\u0631\u0645\u062c\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0627\u0644\u0639\u0645\u064a\u0644 \u0641\u0642\u0637<\/li>\n\n\n\n<li>\u062a\u062a\u0636\u0645\u0646 \u0645\u0643\u0648\u0646\u0627\u062a \u0627\u0644\u0639\u0645\u064a\u0644 \u0633\u0637\u0631\u064b\u0627 \u0639\u0644\u0648\u064a\u064b\u0627  <code>\"use client\"<\/code><\/li>\n<\/ul>\n\n<p>\u0645\u062b\u0627\u0644:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\"use client\";\nimport { useState } from \"react\";\n\nexport default function Toggle() {\n const [open, setOpen] = useState(false);\n return &lt;button onClick={() =&gt; setOpen(!open)}&gt;Toggle&lt;\/button&gt;;\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">use client<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">import<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">useState<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">react<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"\/>\n<span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">default<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">Toggle<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9\">open<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">setOpen<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">useState<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #81A1C1\">false<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;button<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">onClick<\/span><span style=\"color: #81A1C1\">={<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">setOpen<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #81A1C1\">!<\/span><span style=\"color: #D8DEE9\">open<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">}&gt;<\/span><span style=\"color: #D8DEE9FF\">Toggle<\/span><span style=\"color: #81A1C1\">&lt;\/button&gt;;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u064a\u0641\u0631\u0636 Next.js 15 \u062d\u062f\u0648\u062f \u0627\u0644\u0645\u0643\u0648\u0646\u0627\u062a \u0628\u0634\u0643\u0644 \u0623\u0643\u062b\u0631 \u0635\u0631\u0627\u0645\u0629.<\/p>\n\n<h2 class=\"wp-block-heading\">5. \u062a\u062d\u062f\u064a\u062b \u0646\u0638\u0627\u0645 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629<\/h2>\n\n<p>\u0644\u0644\u062d\u0635\u0648\u0644 \u0639\u0644\u0649 \u0646\u0638\u0631\u0629 \u0639\u0627\u0645\u0629 \u0643\u0627\u0645\u0644\u0629 \u0639\u0644\u0649 \u0648\u0627\u062c\u0647\u0629 \u0628\u0631\u0645\u062c\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629 \u0648\u0642\u062f\u0631\u0627\u062a\u0647\u0627\u060c \u0631\u0627\u062c\u0639 <a href=\"https:\/\/nextjs.org\/docs\/app\/api-reference\/functions\/generate-metadata\" title=\"\">\u0648\u062b\u0627\u0626\u0642 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629 \u0644\u0640 Next.js<\/a> \u0627\u0644\u0631\u0633\u0645\u064a\u0629<a href=\"https:\/\/nextjs.org\/docs\/app\/api-reference\/functions\/generate-metadata\" target=\"_blank\" rel=\"noopener\" title=\"\"> <\/a>\u064a\u0633\u062a\u0645\u0631 Next.js 15 \u0641\u064a \u062f\u0639\u0645 \u0648\u0627\u062c\u0647\u0629 \u0628\u0631\u0645\u062c\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629. \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u062a\u0637\u0628\u064a\u0642\u0643 \u064a\u0633\u062a\u062e\u062f\u0645: \u064a\u0633\u062a\u0645\u0631 Next.js 15 \u0641\u064a \u062f\u0639\u0645 \u0648\u0627\u062c\u0647\u0629 \u0628\u0631\u0645\u062c\u0629 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629. \u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u062a\u0637\u0628\u064a\u0642\u0643 \u064a\u0633\u062a\u062e\u062f\u0645:  <\/p>\n\n<ul class=\"wp-block-list\">\n<li>\u062a\u0635\u062f\u064a\u0631 <code>metadata<\/code> \u0641\u064a  <code>layout.tsx<\/code><\/li>\n\n\n\n<li>\u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629 \u0627\u0644\u062f\u064a\u0646\u0627\u0645\u064a\u0643\u064a\u0629 \u0639\u0628\u0631  <code>generateMetadata<\/code><\/li>\n<\/ul>\n\n<p>\u0645\u062b\u0627\u0644:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>export const metadata = {\n title: \"Dashboard\",\n description: \"User dashboard\"\n};<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">metadata<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">title<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">Dashboard<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">description<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">User dashboard<\/span><span style=\"color: #ECEFF4\">\"<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0642\u0645 \u0628\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u062a\u0646\u0641\u064a\u0630\u0627\u062a \u0627\u0644\u0642\u062f\u064a\u0645\u0629 \u0645\u062b\u0644 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0627\u062a <code>Head<\/code>.<\/p>\n\n<h2 class=\"wp-block-heading\">6. \u062d\u0644 \u0623\u062e\u0637\u0627\u0621 \u0648\u062a\u062d\u0630\u064a\u0631\u0627\u062a \u0627\u0644\u0628\u0646\u0627\u0621<\/h2>\n\n<p>\u0627\u0628\u062f\u0623 \u062e\u0627\u062f\u0645 \u0627\u0644\u062a\u0637\u0648\u064a\u0631:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm run dev<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">run<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">dev<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u062a\u0634\u0645\u0644 \u0627\u0644\u0623\u062e\u0637\u0627\u0621 \u0627\u0644\u0634\u0627\u0626\u0639\u0629:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>\u0645\u0643\u0648\u0646\u0627\u062a \u0627\u0644\u062e\u0627\u062f\u0645 \u0627\u0644\u062a\u064a \u062a\u0633\u062a\u0648\u0631\u062f \u0627\u0644\u062e\u0637\u0627\u0641\u0627\u062a<\/li>\n\n\n\n<li>\u0627\u0633\u062a\u064a\u0631\u0627\u062f\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0631 \u063a\u064a\u0631 \u0627\u0644\u0635\u062d\u064a\u062d\u0629<\/li>\n\n\n\n<li>\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u0648\u0635\u0641\u064a\u0629 \u0627\u0644\u0645\u0647\u062c\u0648\u0631\u0629<\/li>\n<\/ul>\n\n<p>\u0631\u0627\u062c\u0639 \u0627\u0644\u062a\u062d\u0630\u064a\u0631\u0627\u062a \u0628\u0639\u0646\u0627\u064a\u0629\u060c \u0644\u0623\u0646\u0647\u0627 \u063a\u0627\u0644\u0628\u064b\u0627 \u0645\u0627 \u062a\u0634\u064a\u0631 \u0625\u0644\u0649 \u0627\u0644\u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u0645\u0637\u0644\u0648\u0628\u0629.<\/p>\n\n<h2 class=\"wp-block-heading\">7. \u0645\u0631\u0627\u062c\u0639\u0629 \u0627\u0644\u0648\u0633\u064a\u0637 \u0648\u0645\u0639\u0627\u0644\u062c\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0631\u0627\u062a<\/h2>\n\n<p>\u062a\u062d\u0642\u0642 \u0645\u0646 \u0645\u0644\u0641 <code>middleware.ts<\/code> \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u0648\u062a\u0623\u0643\u062f \u0645\u0646 \u0623\u0646 \u0627\u0644\u0645\u0637\u0627\u0628\u0642\u0627\u062a \u062a\u062a\u0628\u0639 \u0627\u0644\u0627\u062a\u0641\u0627\u0642\u064a\u0627\u062a \u0627\u0644\u0645\u062d\u062f\u062b\u0629:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>export const config = {\n matcher: [\"\/dashboard\/:path*\"]\n};<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">const<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">config<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">matcher<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> [<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">\/dashboard\/:path*<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #D8DEE9FF\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0645\u0639\u0627\u0644\u062c\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0631\u0627\u062a \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0646\u0645\u0637 <code>route.ts<\/code>.<\/p>\n\n<h2 class=\"wp-block-heading\">8. \u0627\u062e\u062a\u0628\u0627\u0631 \u0645\u0633\u0627\u0631\u0627\u062a API<\/h2>\n\n<p>\u0644\u0645\u0632\u064a\u062f \u0645\u0646 \u0627\u0644\u062a\u0641\u0627\u0635\u064a\u0644 \u062d\u0648\u0644 \u0645\u0639\u0627\u0644\u062c\u0627\u062a \u0627\u0644\u0645\u0633\u0627\u0631\u0627\u062a \u0648\u0623\u0641\u0636\u0644 \u0627\u0644\u0645\u0645\u0627\u0631\u0633\u0627\u062a\u060c \u0631\u0627\u062c\u0639 <a href=\"https:\/\/nextjs.org\/docs\/app\/building-your-application\/routing\/route-handlers\" target=\"_blank\" rel=\"noopener\" title=\"\">\u0648\u062b\u0627\u0626\u0642 \u062a\u0648\u062c\u064a\u0647 API \u0644\u0640 Next.js<\/a><a>\u060c<\/a> \u062a\u0623\u0643\u062f \u0645\u0646 \u0645\u0633\u0627\u0631\u0627\u062a API \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u062a\u062d\u062a <code>app\/api\/...\/route.ts<\/code>: \u062a\u0623\u0643\u062f \u0645\u0646 \u0645\u0633\u0627\u0631\u0627\u062a API \u0627\u0644\u062e\u0627\u0635\u0629 \u0628\u0643 \u062a\u062d\u062a <code>app\/api\/...\/route.ts<\/code>:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>export async function GET() {\n return Response.json({ status: \"ok\" });\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">export<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">async<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">GET<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Response<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">json<\/span><span style=\"color: #D8DEE9FF\">(<\/span><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">status<\/span><span style=\"color: #ECEFF4\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #A3BE8C\">ok<\/span><span style=\"color: #ECEFF4\">\"<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0627\u062e\u062a\u0628\u0631 \u0627\u0644\u0627\u0633\u062a\u062c\u0627\u0628\u0627\u062a \u0627\u0644\u0645\u062a\u062f\u0641\u0642\u0629 \u0648\u0633\u0644\u0648\u0643 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a \u0644\u0636\u0645\u0627\u0646 \u0627\u0644\u062a\u0648\u0627\u0641\u0642.<\/p>\n\n<h2 class=\"wp-block-heading\">9. \u0627\u0644\u0628\u0646\u0627\u0621 \u0648\u0627\u0644\u0646\u0634\u0631<\/h2>\n\n<p>\u0623\u062e\u064a\u0631\u064b\u0627\u060c \u0642\u0645 \u0628\u062a\u0634\u063a\u064a\u0644:<\/p>\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewbox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"\/><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"\/><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"\/><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>npm run build<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewbox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">run<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">build<\/span><\/span><\/code><\/pre><\/div>\n\n<p>\u0642\u0645 \u0628\u062d\u0644 \u0623\u064a \u062a\u062d\u0630\u064a\u0631\u0627\u062a \u0648\u0627\u0646\u0634\u0631 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u0627\u0644\u0628\u064a\u0626\u0629 \u0627\u0644\u0645\u0641\u0636\u0644\u0629 \u0644\u062f\u064a\u0643.<\/p>\n\n<h2 class=\"wp-block-heading\">\u0627\u0644\u062e\u0627\u062a\u0645\u0629<\/h2>\n\n<p>\u0627\u0644\u062a\u0631\u062d\u064a\u0644 \u0645\u0646 Next.js 14 \u0625\u0644\u0649 15 \u0623\u0645\u0631 \u0628\u0633\u064a\u0637 \u0639\u0646\u062f \u0627\u062a\u0628\u0627\u0639 \u0646\u0647\u062c \u0645\u0646\u0638\u0645. \u0645\u0646 \u062e\u0644\u0627\u0644 \u062a\u062d\u062f\u064a\u062b \u0627\u0644\u062a\u0628\u0639\u064a\u0627\u062a\u060c \u0648\u0645\u0631\u0627\u062c\u0639\u0629 \u062a\u063a\u064a\u064a\u0631\u0627\u062a \u0627\u0644\u062a\u0643\u0648\u064a\u0646\u060c \u0648\u0627\u0644\u062a\u062d\u0642\u0642 \u0645\u0646 \u0635\u062d\u0629 \u0627\u062a\u0641\u0627\u0642\u064a\u0627\u062a \u0645\u0648\u062c\u0647 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u060c \u0648\u0627\u062e\u062a\u0628\u0627\u0631 \u0645\u0633\u0627\u0631\u0627\u062a API\u060c \u062a\u0636\u0645\u0646 \u0623\u0646 \u062a\u0637\u0628\u064a\u0642\u0643 \u064a\u0633\u062a\u0641\u064a\u062f \u0645\u0646 \u0627\u0644\u0623\u062f\u0627\u0621 \u0648\u0627\u0644\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0644\u0645\u062d\u0633\u0646\u064a\u0646. \u0627\u0644\u062a\u0631\u0642\u064a\u0629 \u0627\u0644\u0645\u0646\u062a\u0638\u0645\u0629 \u0644\u0625\u0635\u062f\u0627\u0631 Next.js \u0627\u0644\u062e\u0627\u0635 \u0628\u0643 \u062a\u062d\u0627\u0641\u0638 \u0639\u0644\u0649 \u0645\u0634\u0631\u0648\u0639\u0643 \u0622\u0645\u0646\u064b\u0627 \u0648\u0642\u0627\u0628\u0644\u0627\u064b \u0644\u0644\u0635\u064a\u0627\u0646\u0629 \u0648\u062c\u0627\u0647\u0632\u064b\u0627 \u0644\u0644\u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0627\u0644\u0645\u0633\u062a\u0642\u0628\u0644\u064a\u0629.  <\/p>\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0645\u0642\u062f\u0645\u0629 \u064a\u0642\u062f\u0645 Next.js 15 \u062a\u062d\u0633\u064a\u0646\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u062f\u0627\u0621\u060c \u0648\u0633\u0644\u0648\u0643 \u0627\u0644\u062a\u062e\u0632\u064a\u0646 \u0627\u0644\u0645\u0624\u0642\u062a\u060c \u0648\u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0627\u0644\u062a\u0648\u062c\u064a\u0647\u060c \u0648\u062a\u0643\u0627\u0645\u0644 TurboPack. \u064a\u0645\u0643\u0646 \u0639\u0627\u062f\u0629\u064b \u062a\u0631\u0642\u064a\u0629 \u0627\u0644\u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0627\u0644\u0645\u0628\u0646\u064a\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 Next.js 14 \u0628\u0633\u0644\u0627\u0633\u0629\u060c \u0648\u0644\u0643\u0646 \u0627\u0644\u0639\u0645\u0644\u064a\u0629&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1002,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[35],"tags":[43,37],"class_list":["post-1003","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-35","tag-next-js","tag-37"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/khaledshs.com\/wp-content\/uploads\/2025\/11\/How-to-Migrate-a-Next.js-Application-from-Version-14-to-Version-15.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/posts\/1003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/comments?post=1003"}],"version-history":[{"count":1,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/posts\/1003\/revisions"}],"predecessor-version":[{"id":1004,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/posts\/1003\/revisions\/1004"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/media\/1002"}],"wp:attachment":[{"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/media?parent=1003"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/categories?post=1003"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/khaledshs.com\/ar\/wp-json\/wp\/v2\/tags?post=1003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}