लोड हो रहा है...

CLI संदर्भ

CLI संदर्भ (Command Line Interface Reference) एंगुलर विकास का एक मूलभूत और शक्तिशाली भाग है, जो डेवलपर्स को आधुनिक वेब एप्लिकेशन और SPA (Single Page Applications) के निर्माण में अत्यधिक दक्षता प्रदान करता है। एंगुलर CLI के माध्यम से हम न केवल प्रोजेक्ट स्ट्रक्चर को आसानी से तैयार कर सकते हैं, बल्कि कॉम्पोनेंट्स, सर्विसेज़, पाइप्स, मॉड्यूल्स और डायरेक्टिव्स जैसे तत्वों को स्वचालित रूप से जेनरेट और मैनेज भी कर सकते हैं। CLI संदर्भ डेवलपर को जटिल मैन्युअल कॉन्फ़िगरेशन से मुक्त करता है और एक संगठित, स्केलेबल कोडबेस के निर्माण में सहायता करता है।
एंगुलर में CLI का उपयोग तब किया जाता है जब डेवलपर को कोड जेनरेशन, बिल्ड, टेस्टिंग, या डिप्लॉयमेंट के कार्यों को स्वचालित करना हो। CLI संदर्भ एंगुलर के प्रमुख सिद्धांतों — जैसे कि कॉम्पोनेंट-बेस्ड आर्किटेक्चर, स्टेट मैनेजमेंट, डेटा फ्लो और लाइफसायकल हुक्स — को समग्र रूप से एकीकृत करता है। इसके माध्यम से डेवलपर यह सीखता है कि किस प्रकार CLI का उपयोग करते हुए परफॉर्मेंस अनुकूलन, रीयूज़ेबल कॉम्पोनेंट्स का निर्माण, और ऐप की संरचना को संगठित तरीके से नियंत्रित किया जा सकता है।
इस अनुभाग में आप CLI संदर्भ के माध्यम से एंगुलर प्रोजेक्ट्स को कैसे मैनेज करना है, यह सीखेंगे — जिसमें प्रोजेक्ट इनिशियलाइज़ेशन, कॉम्पोनेंट जेनरेशन, बिल्ड कमांड्स, और प्रोडक्शन रेडी डिप्लॉयमेंट जैसी अवधारणाएँ शामिल हैं।

मूल उदाहरण

typescript
TYPESCRIPT Code
// Angular CLI संदर्भ का मूल उदाहरण
// एक नया कॉम्पोनेंट CLI से बनाएं और उसमें स्टेट हैंडलिंग शामिल करें
// Command: ng generate component counter

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

@Component({
selector: 'app-counter',
template: `     <div class="counter-container">       <h2>काउंटर कॉम्पोनेंट</h2>       <p>वर्तमान मान: {{ count }}</p>       <button (click)="increment()">बढ़ाएं</button>       <button (click)="decrement()">घटाएं</button>     </div>
`,
styles: [`     .counter-container {
text-align: center;
padding: 16px;
background-color: #f2f2f2;
border-radius: 8px;
}
`]
})
export class CounterComponent {
count = 0;

increment() {
this.count++;
}

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

ऊपर दिया गया उदाहरण एंगुलर CLI संदर्भ के वास्तविक उपयोग को प्रदर्शित करता है। CLI कमांड ng generate component counter स्वतः ही एक नया कॉम्पोनेंट बनाता है जिसमें TypeScript, HTML, CSS, और टेस्ट फाइलें शामिल होती हैं। यह CLI का प्रमुख लाभ है — डेवलपर को फाइल संरचना या मैनुअल इंटीग्रेशन के झंझट से बचाते हुए कार्य को मानकीकृत तरीके से तेज़ी से पूरा करना।
इस कॉम्पोनेंट में count एक स्टेट वेरिएबल के रूप में कार्य करता है, जो UI डेटा फ्लो को नियंत्रित करता है। बटन क्लिक पर इवेंट बाइंडिंग (click) का उपयोग करते हुए हमने increment() और decrement() मेथड्स को जोड़ा है — यह एंगुलर में इवेंट हैंडलिंग और डेटा बाइंडिंग की शक्ति को दर्शाता है।
यह कॉम्पोनेंट रीयूज़ेबल डिज़ाइन सिद्धांतों पर आधारित है, और CLI के माध्यम से जेनरेट किए गए टेम्पलेट्स डेवलपर्स को बेस्ट प्रैक्टिसेज़ अपनाने के लिए प्रेरित करते हैं। CLI स्वतः ही आवश्यक मॉड्यूल इम्पोर्ट करता है और मॉड्यूल डिक्लेरेशन में नया कॉम्पोनेंट जोड़ता है। इस प्रक्रिया से एप्लिकेशन के स्टेट और डेटा फ्लो को सुरक्षित रूप से बनाए रखना आसान हो जाता है। यह पैटर्न एंगुलर के लाइफसायकल और कंपोनेंट-ड्रिवन आर्किटेक्चर के अनुरूप है।

व्यावहारिक उदाहरण

typescript
TYPESCRIPT Code
// CLI संदर्भ का व्यावहारिक उदाहरण - डेटा फ्लो और लाइफसायकल के साथ
// Command: ng generate service data

import { Injectable, OnInit } 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);
}
}

// Command: 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() {
const newVal = this.currentValue + 10;
this.dataService.updateData(newVal);
}
}

Advanced एंगुलर Implementation

typescript
TYPESCRIPT Code
// उन्नत CLI संदर्भ कार्यान्वयन - त्रुटि प्रबंधन और परफॉर्मेंस अनुकूलन सहित
// Command: 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-container">       <app-display></app-display>     </div>
`,
providers: [{ provide: ErrorHandler, useClass: GlobalErrorHandler }]
})
export class AppComponent {}

एंगुलर CLI संदर्भ में सर्वोत्तम अभ्यास (Best Practices) और आम गलतियाँ दोनों का ज्ञान आवश्यक है। CLI कमांड्स का प्रयोग करते समय हमेशा स्पष्ट नामकरण और मॉड्यूल संरचना बनाए रखें। उदाहरण के लिए, प्रत्येक कॉम्पोनेंट को उसके विशिष्ट दायरे में ही परिभाषित करें और अनावश्यक डेटा पासिंग (prop drilling) से बचें।
स्टेट मैनेजमेंट के लिए RxJS Observables और BehaviorSubjects का प्रयोग करें — यह बेहतर परफॉर्मेंस और डेटा फ्लो सुनिश्चित करता है। CLI द्वारा ऑटोमेटेड बिल्ड्स (ng build --prod) और टेस्टिंग (ng test) के दौरान परफॉर्मेंस मॉनिटरिंग और त्रुटि जाँच करें।
आम त्रुटियों में शामिल हैं — स्टेट को सीधे म्यूटेट करना, अनावश्यक DOM रेंडरिंग, और सब्सक्रिप्शन को अनसब्सक्राइब न करना। सुरक्षा के लिए CLI द्वारा प्रदत्त बिल्ड एन्वायरनमेंट वेरिएबल्स का उपयोग करें और ng lint के साथ कोड क्वालिटी बनाए रखें। CLI संदर्भ के उचित उपयोग से ऐप का लोड समय घटता है, त्रुटियाँ कम होती हैं और विकास की गति में उल्लेखनीय सुधार होता है।

📊 संपूर्ण संदर्भ

एंगुलर Element/Method Description Syntax Example Notes
ng new नया एंगुलर प्रोजेक्ट बनाएँ ng new project-name ng new myApp प्रोजेक्ट स्ट्रक्चर तैयार करता है
ng serve एप्लिकेशन सर्व करें ng serve ng serve --open लोकल सर्वर चालू करता है
ng generate component कॉम्पोनेंट बनाएं ng g c name ng g c header CLI स्वचालित फाइल संरचना बनाता है
ng generate service सर्विस बनाएं ng g s name ng g s auth Dependency Injection के साथ
ng build प्रोजेक्ट बिल्ड करें ng build ng build --prod Production के लिए ऑप्टिमाइज़्ड आउटपुट
ng test टेस्ट चलाएं ng test ng test --watch=false Karma टेस्ट रनर का प्रयोग
ng lint कोड विश्लेषण ng lint ng lint app TSLint के साथ क्वालिटी चेक
ng e2e एंड-टू-एंड टेस्टिंग ng e2e ng e2e app-e2e Protractor द्वारा
ng add लाइब्रेरी जोड़ें ng add package ng add @angular/material Dependencies स्वचालित जोड़ता है
ng update अपडेट करें ng update ng update @angular/core वर्ज़न अपग्रेड्स के लिए
ng doc डॉक्युमेंटेशन देखें ng doc package ng doc router CLI डॉक एक्सेस करता है
ng version वर्ज़न जानकारी देखें ng version - एंगुलर CLI संस्करण दिखाता है
ng deploy प्रोजेक्ट डिप्लॉय करें ng deploy ng deploy firebase क्लाउड प्लेटफ़ॉर्म पर तैनात करता है
ng config CLI कॉन्फ़िगरेशन बदलें ng config key value ng config cli.warnings.versionMismatch false CLI व्यवहार नियंत्रित करता है
ng analytics एनालिटिक्स मैनेज करें ng analytics ng analytics off डेटा ट्रैकिंग सक्षम/अक्षम करता है

📊 Complete एंगुलर Properties Reference

Property Values Default Description एंगुलर Support
prefix string 'app' कॉम्पोनेंट नाम के लिए प्रीफ़िक्स सेट करता है v9+
inlineStyle boolean false स्टाइल फाइल अलग न बनाकर इनलाइन रखता है 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 npm install चरण छोड़ता है v9+
directory string - प्रोजेक्ट के लिए निर्देशिका निर्धारित करता है v9+
dryRun boolean false केवल सिमुलेशन चलाता है v9+
defaults object - CLI के डिफॉल्ट व्यवहार परिभाषित करता है v10+
verbose boolean false विस्तृत CLI आउटपुट दिखाता है v9+

सारांश और अगले चरण:
CLI संदर्भ एंगुलर विकास के लिए रीढ़ की हड्डी के समान है। इस अध्याय से आपने सीखा कि कैसे CLI का उपयोग कर कॉम्पोनेंट, सर्विस, और मॉड्यूल्स को जेनरेट किया जा सकता है, स्टेट मैनेजमेंट को सरल बनाया जा सकता है, और बिल्ड व डिप्लॉयमेंट को स्वचालित किया जा सकता है। यह ज्ञान डेवलपर्स को बड़े पैमाने पर ऐप्स में संरचना और परफॉर्मेंस को नियंत्रित करने में सक्षम बनाता है।
अगले चरणों के रूप में, एंगुलर राउटिंग, RxJS आधारित स्टेट मैनेजमेंट, Lazy Loading और एंगुलर Universal जैसे विषयों का अध्ययन करें। CLI के साथ निरंतर अभ्यास करने से आप production-ready एप्लिकेशन तेजी से और सुरक्षित रूप से बना पाएँगे।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

3
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी