در حال بارگذاری...

مرجع CLI

مرجع CLI در انگولار (Command Line Interface) یکی از قدرتمندترین ابزارهای توسعه‌دهندگان برای ساخت، مدیریت و بهینه‌سازی پروژه‌های مدرن تحت وب و SPA (برنامه‌های تک‌صفحه‌ای) است. CLI به عنوان ستون فقرات فرآیند توسعه در انگولار، امکان ایجاد سریع کامپوننت‌ها، سرویس‌ها، ماژول‌ها، پایپ‌ها، و سایر بخش‌های برنامه را فراهم می‌کند و از تکرار کارهای دستی جلوگیری می‌نماید. با استفاده از CLI، توسعه‌دهندگان می‌توانند ساختار پروژه را استاندارد، کدها را تمیز و کارایی برنامه را بالا نگه دارند.
CLI در زمانی به‌کار می‌رود که نیاز به ایجاد ساختارهای تکراری، اجرای تست‌ها، بیلد پروژه، و یا دیپلوی خودکار برنامه باشد. این ابزار به‌صورت مستقیم با مفاهیم کلیدی انگولار همچون کامپوننت‌ها، مدیریت وضعیت (state management)، جریان داده (data flow)، و چرخه‌حیات (lifecycle hooks) ارتباط دارد. مرجع CLI نه تنها نحوه اجرای دستورات را توضیح می‌دهد، بلکه نشان می‌دهد چگونه این دستورات می‌توانند چرخه توسعه را تسریع و خطاها را کاهش دهند.
در این فصل، یاد می‌گیرید چگونه از CLI برای ایجاد اجزای قابل‌استفاده مجدد، بهبود جریان داده در اپلیکیشن، مدیریت وضعیت و استقرار برنامه در محیط‌های تولیدی استفاده کنید. درک عمیق CLI در انگولار، مسیر شما را برای توسعه برنامه‌های بزرگ و ساختارمند تسهیل می‌کند.

مثال پایه

typescript
TYPESCRIPT Code
// ایجاد یک کامپوننت ساده با استفاده از CLI و مدیریت وضعیت پایه
// دستور CLI: ng generate component counter

import { Component } from '@angular/core';

@Component({
selector: 'app-counter',
template: `     <div class="counter-box">       <h2>کامپوننت شمارنده</h2>       <p>مقدار فعلی: {{ count }}</p>       <button (click)="increment()">افزایش</button>       <button (click)="decrement()">کاهش</button>     </div>
`,
styles: [`     .counter-box {
text-align: center;
background: #f3f3f3;
padding: 15px;
border-radius: 10px;
width: 250px;
margin: 0 auto;
}
`]
})
export class CounterComponent {
count = 0;

increment() {
this.count++;
}

decrement() {
if (this.count > 0) this.count--;
}
}

کد بالا نمونه‌ای از استفاده‌ی CLI برای ایجاد یک کامپوننت ساده در انگولار است. با اجرای دستور ng generate component counter، CLI به‌صورت خودکار پوشه‌ی کامپوننت را با فایل‌های TypeScript، HTML، CSS و تست ایجاد می‌کند. این روش باعث کاهش خطای انسانی و حفظ ساختار منظم پروژه می‌شود.
در این پیاده‌سازی، متغیر count وضعیت محلی (local state) کامپوننت را مدیریت می‌کند و از طریق بایندینگ دوطرفه (interpolation) در قالب (template) نمایش داده می‌شود. با کلیک بر دکمه‌ها، متدهای increment و decrement فراخوانی شده و جریان داده به‌صورت یک‌طرفه (unidirectional data flow) در کامپوننت به‌روزرسانی می‌گردد.
این مثال نشان می‌دهد که چگونه CLI فرآیند ایجاد و یکپارچه‌سازی کامپوننت را ساده و استاندارد می‌سازد. همچنین، با جلوگیری از prop drilling و رعایت الگوی component-based architecture، توسعه‌دهنده می‌تواند به‌راحتی ماژولاریتی و قابلیت نگهداری کد را افزایش دهد. CLI به‌صورت خودکار این کامپوننت را به ماژول اصلی اضافه کرده و روند توسعه را تسهیل می‌کند.

مثال کاربردی

typescript
TYPESCRIPT Code
// مثال کاربردی‌تر برای نمایش جریان داده و چرخه‌حیات با CLI
// دستور CLI: ng generate service data

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable({
providedIn: 'root'
})
export class DataService {
private dataSource = new BehaviorSubject<number>(0);
currentData = this.dataSource.asObservable();

updateData(value: number) {
this.dataSource.next(value);
}
}

// دستور CLI: ng generate component display

import { Component, OnInit } from '@angular/core';
import { DataService } from '../data.service';

@Component({
selector: 'app-display',
template: `     <h3>نمایش داده</h3>     <p>مقدار فعلی: {{ currentValue }}</p>     <button (click)="changeValue()">تغییر مقدار</button>
`
})
export class DisplayComponent implements OnInit {
currentValue!: number;

constructor(private dataService: DataService) {}

ngOnInit() {
this.dataService.currentData.subscribe(value => this.currentValue = value);
}

changeValue() {
this.dataService.updateData(this.currentValue + 5);
}
}

Advanced انگولار Implementation

typescript
TYPESCRIPT Code
// پیاده‌سازی پیشرفته با مدیریت خطا و بهینه‌سازی عملکرد
// دستور CLI: ng build --configuration production

import { Component, ErrorHandler, Injectable } from '@angular/core';
import { DataService } from './data.service';

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
handleError(error: any) {
console.error('خطای برنامه:', error);
alert('مشکلی رخ داده است، لطفاً مجدداً تلاش کنید!');
}
}

@Component({
selector: 'app-root',
template: `     <div class="app-wrapper">       <app-display></app-display>     </div>
`,
providers: [{ provide: ErrorHandler, useClass: GlobalErrorHandler }]
})
export class AppComponent {}

در مرجع CLI، رعایت اصول بهترین شیوه‌ها (Best Practices) ضروری است. همیشه از نام‌گذاری شفاف و ساختار پوشه‌بندی استاندارد استفاده کنید تا نگهداری پروژه آسان‌تر شود. برای جلوگیری از مشکلاتی چون prop drilling، داده‌ها را از طریق سرویس‌ها و RxJS observables مدیریت کنید.
از تغییر مستقیم state پرهیز کرده و از روش‌های غیرمخرب (immutable updates) استفاده نمایید. همچنین، برای جلوگیری از رندرهای غیرضروری، از ChangeDetectionStrategy.OnPush در کامپوننت‌ها بهره ببرید. CLI به شما امکان می‌دهد تا با استفاده از دستوراتی مانند ng build --prod و ng test، برنامه را بهینه و قابل اطمینان نگه دارید.
برای امنیت، تنظیمات CLI را در فایل angular.json مدیریت کرده و از environment variables جهت تفکیک محیط‌ها (development/production) استفاده کنید. از ng lint جهت بررسی کیفیت کد استفاده نموده و خطاهای احتمالی را زود تشخیص دهید. رعایت این اصول در مرجع CLI باعث افزایش کارایی و پایداری اپلیکیشن در مقیاس بزرگ می‌شود.

📊 مرجع کامل

انگولار Element/Method Description Syntax Example Notes
ng new ایجاد پروژه جدید ng new app-name ng new shopApp شروع سریع پروژه
ng serve اجرای برنامه در لوکال ng serve ng serve --open راه‌اندازی سرور محلی
ng generate component ساخت کامپوننت ng g c name ng g c header ایجاد خودکار فایل‌ها
ng generate service ساخت سرویس ng g s name ng g s auth پشتیبانی از DI
ng build ساخت پروژه ng build ng build --prod بیلد برای تولید
ng test اجرای تست‌ها ng test ng test --watch=false اجرای تست‌های یونیت
ng lint بررسی کد ng lint ng lint app تحلیل استاتیک کد
ng e2e تست End-to-End ng e2e ng e2e shop-e2e اجرای تست‌های جامع
ng add افزودن پکیج جدید ng add package ng add @angular/material افزودن وابستگی‌ها
ng update به‌روزرسانی پکیج‌ها ng update ng update @angular/core مدیریت نسخه‌ها
ng doc نمایش مستندات ng doc name ng doc router ارجاع به مستندات رسمی
ng version نمایش نسخه‌ها ng version - نمایش اطلاعات نسخه
ng deploy دیپلوی پروژه ng deploy ng deploy firebase انتشار در پلتفرم
ng config تنظیم پیکربندی ng config key value ng config cli.warnings false پیکربندی CLI
ng analytics مدیریت تحلیل‌ها ng analytics ng analytics off غیرفعال‌سازی تله‌متری

📊 Complete انگولار Properties Reference

Property Values Default Description انگولار Support
prefix string 'app' پیشوند نام‌گذاری کامپوننت‌ها v9+
inlineStyle boolean false قرار دادن CSS به‌صورت درون‌خطی v8+
inlineTemplate boolean false قرار دادن قالب در فایل TS v8+
skipTests boolean false عدم ایجاد فایل تست v9+
routing boolean true افزودن ماژول مسیرها v8+
style css, scss, sass, less css انتخاب سبک فایل‌ها v9+
strict boolean true فعال‌سازی تایپینگ سخت‌گیرانه v10+
skipInstall boolean false عدم نصب خودکار پکیج‌ها v9+
directory string - محل ذخیره پروژه v9+
dryRun boolean false شبیه‌سازی بدون اعمال تغییرات v9+
defaults object - پیکربندی پیش‌فرض CLI v10+
verbose boolean false نمایش جزئیات بیشتر در خروجی v9+

خلاصه و گام‌های بعدی در انگولار:
در این بخش، با مفاهیم کلیدی مرجع CLI در انگولار آشنا شدید. یاد گرفتید چگونه از CLI برای تولید کامپوننت‌ها، سرویس‌ها، و بیلد برنامه استفاده کنید و ساختار پروژه خود را بهینه و قابل نگهداری سازید. CLI نه‌تنها سرعت توسعه را افزایش می‌دهد بلکه از بروز خطاهای ساختاری جلوگیری می‌کند.
برای ادامه مسیر، پیشنهاد می‌شود مباحث پیشرفته‌تری مانند مدیریت وضعیت با NgRx، بارگذاری تنبل (Lazy Loading)، بهینه‌سازی عملکرد، و استقرار خودکار با ابزارهای DevOps را بیاموزید. تمرین مداوم با CLI، تسلط شما را در معماری و استقرار پروژه‌های Enterprise افزایش می‌دهد.

🧠 دانش خود را بیازمایید

آماده شروع

دانش خود را بیازمایید

خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کرده‌اید

3
سوالات
🎯
70%
برای قبولی
♾️
زمان
🔄
تلاش‌ها

📝 دستورالعمل‌ها

  • هر سوال را با دقت بخوانید
  • بهترین پاسخ را برای هر سوال انتخاب کنید
  • می‌توانید آزمون را هر چند بار که می‌خواهید تکرار کنید
  • پیشرفت شما در بالا نمایش داده می‌شود