Skip to content

Commit 262e3b0

Browse files
committed
docs: update documentation translations
1 parent bc112ea commit 262e3b0

File tree

368 files changed

+54574
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

368 files changed

+54574
-0
lines changed
Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,341 @@
1+
---
2+
source-updated-at: 2025-06-01T01:32:20.000Z
3+
translation-updated-at: 2025-06-02T20:04:07.604Z
4+
title: كيفية إعداد مشروع Next.js جديد
5+
nav_title: التثبيت
6+
description: إنشاء تطبيق Next.js جديد باستخدام واجهة سطر الأوامر `create-next-app`، وإعداد TypeScript و ESLint و Module Path Aliases.
7+
---
8+
9+
{/* محتوى هذا المستند مشترك بين موجه التطبيق وموجه الصفحات. يمكنك استخدام مكون `<PagesOnly>محتوى</PagesOnly>` لإضافة محتوى خاص بموجه الصفحات. أي محتوى مشترك يجب عدم تضمينه في مكون. */}
10+
11+
## متطلبات النظام
12+
13+
قبل البدء، تأكد من أن نظامك يستوفي المتطلبات التالية:
14+
15+
- [Node.js 18.18](https://nodejs.org/) أو أحدث.
16+
- نظام macOS أو Windows (بما في ذلك WSL) أو Linux.
17+
18+
## التثبيت التلقائي
19+
20+
أسرع طريقة لإنشاء تطبيق Next.js جديد هي استخدام [`create-next-app`](/docs/app/api-reference/cli/create-next-app)، والذي يقوم بإعداد كل شيء تلقائيًا لك. لإنشاء مشروع، قم بتنفيذ:
21+
22+
```bash filename="Terminal"
23+
npx create-next-app@latest
24+
```
25+
26+
عند التثبيت، سترى المطالبات التالية:
27+
28+
```txt filename="Terminal"
29+
ما هو اسم مشروعك؟ my-app
30+
هل ترغب في استخدام TypeScript؟ لا / نعم
31+
هل ترغب في استخدام ESLint؟ لا / نعم
32+
هل ترغب في استخدام Tailwind CSS؟ لا / نعم
33+
هل ترغب في وضع الكود داخل مجلد `src/`؟ لا / نعم
34+
هل ترغب في استخدام App Router؟ (موصى به) لا / نعم
35+
هل ترغب في استخدام Turbopack لـ `next dev`؟ لا / نعم
36+
هل ترغب في تخصيص Import Alias (الافتراضي `@/*`)؟ لا / نعم
37+
ما Import Alias الذي ترغب في تكوينه؟ @/*
38+
```
39+
40+
بعد المطالبات، سيقوم [`create-next-app`](/docs/app/api-reference/cli/create-next-app) بإنشاء مجلد باسم مشروعك وتثبيت التبعيات المطلوبة.
41+
42+
## التثبيت اليدوي
43+
44+
لإنشاء تطبيق Next.js جديد يدويًا، قم بتثبيت الحزم المطلوبة:
45+
46+
```bash filename="Terminal"
47+
npm install next@latest react@latest react-dom@latest
48+
```
49+
50+
ثم أضف السكربتات التالية إلى ملف `package.json` الخاص بك:
51+
52+
```json filename="package.json"
53+
{
54+
"scripts": {
55+
"dev": "next dev",
56+
"build": "next build",
57+
"start": "next start",
58+
"lint": "next lint"
59+
}
60+
}
61+
```
62+
63+
تشير هذه السكربتات إلى مراحل مختلفة من تطوير التطبيق:
64+
65+
- `next dev`: يبدأ خادم التطوير.
66+
- `next build`: يقوم ببناء التطبيق للإنتاج.
67+
- `next start`: يبدأ خادم الإنتاج.
68+
- `next lint`: يقوم بتشغيل ESLint.
69+
70+
<AppOnly>
71+
72+
### إنشاء مجلد `app`
73+
74+
يستخدم Next.js توجيه نظام الملفات، مما يعني أن المسارات في تطبيقك يتم تحديدها من خلال كيفية تنظيم ملفاتك.
75+
76+
قم بإنشاء مجلد `app`. ثم، داخل `app`، قم بإنشاء ملف `layout.tsx`. هذا الملف هو [تخطيط الجذر](/docs/app/api-reference/file-conventions/layout#root-layout). وهو مطلوب ويجب أن يحتوي على وسمي `<html>` و `<body>`.
77+
78+
```tsx filename="app/layout.tsx" switcher
79+
export default function RootLayout({
80+
children,
81+
}: {
82+
children: React.ReactNode
83+
}) {
84+
return (
85+
<html lang="en">
86+
<body>{children}</body>
87+
</html>
88+
)
89+
}
90+
```
91+
92+
```jsx filename="app/layout.js" switcher
93+
export default function RootLayout({ children }) {
94+
return (
95+
<html lang="en">
96+
<body>{children}</body>
97+
</html>
98+
)
99+
}
100+
```
101+
102+
قم بإنشاء صفحة رئيسية `app/page.tsx` مع بعض المحتوى الأولي:
103+
104+
```tsx filename="app/page.tsx" switcher
105+
export default function Page() {
106+
return <h1>Hello, Next.js!</h1>
107+
}
108+
```
109+
110+
```jsx filename="app/page.js" switcher
111+
export default function Page() {
112+
return <h1>Hello, Next.js!</h1>
113+
}
114+
```
115+
116+
سيتم عرض كل من `layout.tsx` و `page.tsx` عندما يزور المستخدم جذر تطبيقك (`/`).
117+
118+
<Image
119+
alt="هيكل مجلد التطبيق"
120+
srcLight="/docs/light/app-getting-started.png"
121+
srcDark="/docs/dark/app-getting-started.png"
122+
width="1600"
123+
height="363"
124+
/>
125+
126+
> **معلومة مفيدة**:
127+
>
128+
> - إذا نسيت إنشاء تخطيط الجذر، سيقوم Next.js تلقائيًا بإنشاء هذا الملف عند تشغيل خادم التطوير باستخدام `next dev`.
129+
> - يمكنك اختياريًا استخدام مجلد [`src`](/docs/app/api-reference/file-conventions/src-folder) في جذر مشروعك لفصل كود التطبيق عن ملفات التكوين.
130+
131+
</AppOnly>
132+
133+
<PagesOnly>
134+
135+
### إنشاء مجلد `pages`
136+
137+
يستخدم Next.js توجيه نظام الملفات، مما يعني أن المسارات في تطبيقك يتم تحديدها من خلال كيفية تنظيم ملفاتك.
138+
139+
قم بإنشاء مجلد `pages` في جذر مشروعك. ثم أضف ملف `index.tsx` داخل مجلد `pages` الخاص بك. سيكون هذا صفحتك الرئيسية (`/`):
140+
141+
```tsx filename="pages/index.tsx" switcher
142+
export default function Page() {
143+
return <h1>Hello, Next.js!</h1>
144+
}
145+
```
146+
147+
```jsx filename="pages/index.js" switcher
148+
export default function Page() {
149+
return <h1>Hello, Next.js!</h1>
150+
}
151+
```
152+
153+
بعد ذلك، أضف ملف `_app.tsx` داخل `pages/` لتحديد التخطيط العام. تعلم المزيد حول [ملف App المخصص](/docs/pages/building-your-application/routing/custom-app).
154+
155+
```tsx filename="pages/_app.tsx" switcher
156+
import type { AppProps } from 'next/app'
157+
158+
export default function App({ Component, pageProps }: AppProps) {
159+
return <Component {...pageProps} />
160+
}
161+
```
162+
163+
```jsx filename="pages/_app.js" switcher
164+
export default function App({ Component, pageProps }) {
165+
return <Component {...pageProps} />
166+
}
167+
```
168+
169+
أخيرًا، أضف ملف `_document.tsx` داخل `pages/` للتحكم في الاستجابة الأولية من الخادم. تعلم المزيد حول [ملف Document المخصص](/docs/pages/building-your-application/routing/custom-document).
170+
171+
```tsx filename="pages/_document.tsx" switcher
172+
import { Html, Head, Main, NextScript } from 'next/document'
173+
174+
export default function Document() {
175+
return (
176+
<Html>
177+
<Head />
178+
<body>
179+
<Main />
180+
<NextScript />
181+
</body>
182+
</Html>
183+
)
184+
}
185+
```
186+
187+
```jsx filename="pages/_document.js" switcher
188+
import { Html, Head, Main, NextScript } from 'next/document'
189+
190+
export default function Document() {
191+
return (
192+
<Html>
193+
<Head />
194+
<body>
195+
<Main />
196+
<NextScript />
197+
</body>
198+
</Html>
199+
)
200+
}
201+
```
202+
203+
</PagesOnly>
204+
205+
### إنشاء مجلد `public` (اختياري)
206+
207+
قم بإنشاء مجلد [`public`](/docs/app/api-reference/file-conventions/public-folder) في جذر مشروعك لتخزين الأصول الثابتة مثل الصور والخطوط وما إلى ذلك. يمكن بعد ذلك الإشارة إلى الملفات داخل `public` من خلال الكود الخاص بك بدءًا من عنوان URL الأساسي (`/`).
208+
209+
يمكنك بعد ذلك الإشارة إلى هذه الأصول باستخدام المسار الجذري (`/`). على سبيل المثال، يمكن الإشارة إلى `public/profile.png` كـ `/profile.png`:
210+
211+
```tsx filename="app/page.tsx" highlight={4} switcher
212+
import Image from 'next/image'
213+
214+
export default function Page() {
215+
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
216+
}
217+
```
218+
219+
```jsx filename="app/page.js" highlight={4} switcher
220+
import Image from 'next/image'
221+
222+
export default function Page() {
223+
return <Image src="/profile.png" alt="Profile" width={100} height={100} />
224+
}
225+
```
226+
227+
## تشغيل خادم التطوير
228+
229+
1. قم بتشغيل `npm run dev` لبدء خادم التطوير.
230+
2. قم بزيارة `http://localhost:3000` لعرض تطبيقك.
231+
3. قم بتحرير ملف <AppOnly>`app/page.tsx`</AppOnly><PagesOnly>`pages/index.tsx`</PagesOnly> واحفظه لرؤية النتيجة المحدثة في متصفحك.
232+
233+
## إعداد TypeScript
234+
235+
> الحد الأدنى لإصدار TypeScript: `v4.5.2`
236+
237+
يأتي Next.js مع دعم مدمج لـ TypeScript. لإضافة TypeScript إلى مشروعك، قم بإعادة تسمية ملف إلى `.ts` / `.tsx` وقم بتشغيل `next dev`. سيقوم Next.js تلقائيًا بتثبيت التبعيات الضرورية وإضافة ملف `tsconfig.json` مع خيارات التكوين الموصى بها.
238+
239+
<AppOnly>
240+
241+
### ملحق IDE
242+
243+
يتضمن Next.js ملحق TypeScript مخصصًا ومدقق نوع، والذي يمكن أن تستخدمه VSCode ومحررات الأكواد الأخرى للتحقق المتقدم من الأنواع والإكمال التلقائي.
244+
245+
يمكنك تمكين الملحق في VS Code عن طريق:
246+
247+
1. فتح لوحة الأوامر (`Ctrl/⌘` + `Shift` + `P`)
248+
2. البحث عن "TypeScript: Select TypeScript Version"
249+
3. اختيار "Use Workspace Version"
250+
251+
<Image
252+
alt="لوحة أوامر TypeScript"
253+
srcLight="/docs/light/typescript-command-palette.png"
254+
srcDark="/docs/dark/typescript-command-palette.png"
255+
width="1600"
256+
height="637"
257+
/>
258+
259+
</AppOnly>
260+
261+
راجع صفحة [مرجع TypeScript](/docs/app/api-reference/config/next-config-js/typescript) لمزيد من المعلومات.
262+
263+
## إعداد ESLint
264+
265+
يأتي Next.js مع ESLint مدمج. يقوم تلقائيًا بتثبيت الحزم الضرورية وتكوين الإعدادات المناسبة عند إنشاء مشروع جديد باستخدام `create-next-app`.
266+
267+
لإضافة ESLint يدويًا إلى مشروع موجود، أضف `next lint` كسكربت إلى `package.json`:
268+
269+
```json filename="package.json"
270+
{
271+
"scripts": {
272+
"lint": "next lint"
273+
}
274+
}
275+
```
276+
277+
ثم قم بتشغيل `npm run lint` وسيتم توجيهك خلال عملية التثبيت والتكوين.
278+
279+
```bash filename="Terminal"
280+
npm run lint
281+
```
282+
283+
سترى مطالبة مثل هذه:
284+
285+
> ? كيف ترغب في تكوين ESLint؟
286+
>
287+
> ❯ صارم (موصى به)
288+
> أساسي
289+
> إلغاء
290+
291+
- **صارم**: يتضمن تكوين ESLint الأساسي لـ Next.js مع مجموعة قواعد أكثر صرامة لـ Core Web Vitals. هذا هو التكوين الموصى به للمطورين الذين يقومون بإعداد ESLint لأول مرة.
292+
- **أساسي**: يتضمن تكوين ESLint الأساسي لـ Next.js.
293+
- **إلغاء**: تخطي التكوين. اختر هذا الخيار إذا كنت تخطط لإعداد تكوين ESLint مخصص خاص بك.
294+
295+
إذا تم اختيار **صارم** أو **أساسي**، سيقوم Next.js تلقائيًا بتثبيت `eslint` و `eslint-config-next` كتبعيات في تطبيقك وإنشاء ملف `.eslintrc.json` في جذر مشروعك يتضمن التكوين الذي اخترته.
296+
297+
يمكنك الآن تشغيل `next lint` في أي وقت تريد تشغيل ESLint للكشف عن الأخطاء. بمجرد إعداد ESLint، سيتم تشغيله تلقائيًا أيضًا خلال كل بناء (`next build`). ستؤدي الأخطاء إلى فشل البناء، بينما لن تؤدي التحذيرات إلى ذلك.
298+
299+
راجع صفحة [ملحق ESLint](/docs/app/api-reference/config/next-config-js/eslint) لمزيد من المعلومات.
300+
301+
## إعداد الاستيراد المطلق و Module Path Aliases
302+
303+
يحتوي Next.js على دعم مدمج لخيارات `"paths"` و `"baseUrl"` لملفات `tsconfig.json` و `jsconfig.json`.
304+
305+
تتيح لك هذه الخيارات تعيين مسارات المجلدات في المشروع إلى مسارات مطلقة، مما يجعل استيراد الوحدات أسهل وأنظف. على سبيل المثال:
306+
307+
```jsx
308+
// قبل
309+
import { Button } from '../../../components/button'
310+
311+
// بعد
312+
import { Button } from '@/components/button'
313+
```
314+
315+
لتكوين الاستيراد المطلق، أضف خيار `baseUrl` إلى ملف `tsconfig.json` أو `jsconfig.json` الخاص بك. على سبيل المثال:
316+
317+
```json filename="tsconfig.json or jsconfig.json"
318+
{
319+
"compilerOptions": {
320+
"baseUrl": "src/"
321+
}
322+
}
323+
```
324+
325+
بالإضافة إلى تكوين مسار `baseUrl`، يمكنك استخدام خيار `"paths"` لـ `"alias"` مسارات الوحدات.
326+
327+
على سبيل المثال، يقوم التكوين التالي بتعيين `@/components/*` إلى `components/*`:
328+
329+
```json filename="tsconfig.json or jsconfig.json"
330+
{
331+
"compilerOptions": {
332+
"baseUrl": "src/",
333+
"paths": {
334+
"@/styles/*": ["styles/*"],
335+
"@/components/*": ["components/*"]
336+
}
337+
}
338+
}
339+
```
340+
341+
كل من `"paths"` مرتبطة بموقع `baseUrl`.

0 commit comments

Comments
 (0)