109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			109 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: React with Webpack File Structure | ||
|  | localeTitle: تتفاعل مع بنية ملف Webpack | ||
|  | --- | ||
|  | الآن حان الوقت لإعداد هيكل الملف الخاص بنا قبل كتابة أي رمز. | ||
|  | 
 | ||
|  | أولاً ، دعنا ننشئ ملفًا جديدًا باسم `.gitignore` : | ||
|  | 
 | ||
|  |  `touch .gitignore  | ||
|  | `  | ||
|  | 
 | ||
|  | سيحتوي هذا الملف على قائمة بكافة الملفات والمجلدات التي **لن** يتم تضمينها عند دفع مشروعنا إلى GitHub. يوجد موقع ويب يخدم كود `.gitignore` لملفات `.gitignore` ، وهو أمر مفيد للغاية ، لأنه في كثير من الأحيان ، يمكن أن يكون ملف `.gitignore` طويلًا ومطولًا ، وقد ننسى بعض الملفات أو المجلدات التي نريد أن يتجاهلها Git. | ||
|  | 
 | ||
|  | انتقل إلى [https://www.gitignore.io/](https://www.gitignore.io/) واكتب `Node` في شريط البحث ، ثم انقر على " `Generate` . سيؤدي ذلك إلى إنشاء ملف يبدو كالتالي: | ||
|  | 
 | ||
|  |  `# Created by https://www.gitignore.io/api/node  | ||
|  |   | ||
|  |  ### Node ###  | ||
|  |  # Logs  | ||
|  |  logs  | ||
|  |  *.log  | ||
|  |  npm-debug.log*  | ||
|  |   | ||
|  |  # Runtime data  | ||
|  |  pids  | ||
|  |  *.pid  | ||
|  |  *.seed  | ||
|  |   | ||
|  |  # Directory for instrumented libs generated by jscoverage/JSCover  | ||
|  |  lib-cov  | ||
|  |   | ||
|  |  # Coverage directory used by tools like istanbul  | ||
|  |  coverage  | ||
|  |   | ||
|  |  # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)  | ||
|  |  .grunt  | ||
|  |   | ||
|  |  # node-waf configuration  | ||
|  |  .lock-wscript  | ||
|  |   | ||
|  |  # Compiled binary addons (http://nodejs.org/api/addons.html)  | ||
|  |  build/Release  | ||
|  |   | ||
|  |  # Dependency directories  | ||
|  |  node_modules  | ||
|  |  jspm_packages  | ||
|  |   | ||
|  |  # Optional npm cache directory  | ||
|  |  .npm  | ||
|  |   | ||
|  |  # Optional REPL history  | ||
|  |  .node_repl_history  | ||
|  | `  | ||
|  | 
 | ||
|  | الآن يمكننا نسخ ولصق ذلك في ملف `.gitignore` بنا. | ||
|  | 
 | ||
|  | لاحظ أن `.gitignore` ملف يجب أن تتضمن دائما `node_modules` . هذا أمر في غاية الأهمية ، لأننا لا نريد تضمين مجلد `node_modules` بنا مع `node_modules` Git ، حيث أنها تستهلك مساحة كبيرة على القرص ، ويمكن تثبيتها بتثبيت `npm install` ، والذي يشير إلى `package.json` لدينا. | ||
|  | 
 | ||
|  | معظم الملفات والمجلدات المدرجة في ملف `.gitignore` بنا غير موجودة في مشروعنا حتى الآن ، ولكن إذا فعلت ذلك في المستقبل ، فلن يتم تضمينها في التزامات Git الخاصة بنا ، وهي مهمة ومفيدة ، لأننا يجب أن نكون انتقائي حول ما نرتكبه. | ||
|  | 
 | ||
|  | الآن ، نحتاج إلى إنشاء مجلد جديد يحتوي على محتويات شفرة **التطوير الخاصة** بنا. دعونا نسميها `src` : | ||
|  | 
 | ||
|  |  `mkdir src  | ||
|  | `  | ||
|  | 
 | ||
|  | بعد ذلك ، نحتاج إلى إنشاء مجلد يحتوي على ملفات نستخدمها لأغراض **الإنتاج** . سنسمي هذا المجلد `dist` : | ||
|  | 
 | ||
|  |  `mkdir dist  | ||
|  | `  | ||
|  | 
 | ||
|  | *   [مساعدة: مزيد من المعلومات حول `src` و `dist` المجلدات](http://stackoverflow.com/questions/23730882/what-is-the-role-of-src-and-dist-folders/23731040#23731040) | ||
|  | 
 | ||
|  | الآن بعد أن قمنا بتثبيت الحزم الخاصة بنا `dist` مجلدات `src` و `dist` فارغة ، ستبدو الشجرة كما هي (لا تشمل `.gitignore` ، وهو ملف مخفي): | ||
|  | 
 | ||
|  |  `.  | ||
|  |  ├── dist  | ||
|  |  ├── node_modules  | ||
|  |  ├── package.json  | ||
|  |  ├── src  | ||
|  |  └── webpack.config.js  | ||
|  | `  | ||
|  | 
 | ||
|  | الآن ، يمكننا إنشاء مجلد `js` جديد ينتقل إلى مجلد `src` بنا. سيحتوي هذا على جميع رموز التفاعل: | ||
|  | 
 | ||
|  |  `mkdir src/js  | ||
|  | `  | ||
|  | 
 | ||
|  | يمكننا المضي قدما وخلق `client.js` فارغة في `src/js` لدينا. سيكون هذا هو ملفنا الرئيسي React: | ||
|  | 
 | ||
|  |  `touch src/js/client.js  | ||
|  | `  | ||
|  | 
 | ||
|  | نحتاج أيضًا إلى `index.html` **لا يجب أن** يدخل مجلد `src` بنا ، بل إلى مجلد `dist` بنا ، لأنه مطلوب **لإنتاج** التطبيق لدينا: | ||
|  | 
 | ||
|  |  `touch dist/index.html  | ||
|  | `  | ||
|  | 
 | ||
|  | الآن ، تبدو شجرتنا بشيء من هذا القبيل: | ||
|  | 
 | ||
|  |  `.  | ||
|  |  ├── dist  | ||
|  |  │   └── index.html  | ||
|  |  ├── node_modules  | ||
|  |  ├── package.json  | ||
|  |  ├── src  | ||
|  |  │   └── js  | ||
|  |  │       └── client.js  | ||
|  |  └── webpack.config.js  | ||
|  | ` |