{"id":30952,"date":"2025-10-03T23:42:01","date_gmt":"2025-10-03T20:42:01","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30952"},"modified":"2025-10-03T23:42:01","modified_gmt":"2025-10-03T20:42:01","slug":"angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/","title":{"rendered":"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Web geli\u015ftirme d\u00fcnyas\u0131, s\u00fcrekli de\u011fi\u015fen teknolojiler ve \u00e7er\u00e7evelerle dolu dinamik bir aland\u0131r. Bu dinamik ortamda, modern, \u00f6l\u00e7eklenebilir ve y\u00fcksek performansl\u0131 tek sayfa uygulamalar\u0131 (Single Page Applications &#8211; SPA) geli\u015ftirmek i\u00e7in Angular gibi g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7eveye ihtiya\u00e7 duyar\u0131z. Angular, Google taraf\u0131ndan desteklenen, TypeScript tabanl\u0131, bile\u015fen odakl\u0131 bir \u00f6n y\u00fcz (frontend) geli\u015ftirme \u00e7er\u00e7evesidir. B\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal uygulamalardan k\u00fc\u00e7\u00fck ki\u015fisel projelere kadar geni\u015f bir yelpazede tercih edilmesinin temel nedenleri aras\u0131nda tutarl\u0131l\u0131k, performans optimizasyonlar\u0131 ve zengin ekosistemi yer al\u0131r. Ancak Angular&#8217;\u0131n t\u00fcm bu g\u00fcc\u00fcn\u00fc verimli bir \u015fekilde kullanabilmek i\u00e7in, geli\u015ftirme s\u00fcrecini basitle\u015ftiren ve standartla\u015ft\u0131ran bir araca ihtiyac\u0131m\u0131z vard\u0131r: Angular CLI (Command Line Interface).<\/p>\n<p>Angular CLI, Angular uygulamalar\u0131n\u0131 olu\u015fturmak, geli\u015ftirmek, test etmek ve da\u011f\u0131tmak i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Bu rehber, Angular d\u00fcnyas\u0131na ad\u0131m atmak isteyen geli\u015ftiriciler i\u00e7in Angular CLI&#8217;\u0131n temelden ileri seviyeye kadar t\u00fcm \u00f6zelliklerini kapsayan kapsaml\u0131 bir yol haritas\u0131 sunmaktad\u0131r. S\u0131f\u0131rdan bir Angular projesi olu\u015fturmaktan, bile\u015fenler, servisler gibi temel yap\u0131 ta\u015flar\u0131n\u0131 anlamaya ve uygulaman\u0131z\u0131 da\u011f\u0131t\u0131ma haz\u0131rlamaya kadar her ad\u0131m\u0131 detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Bu rehberin sonunda, Angular CLI&#8217;\u0131 etkin bir \u015fekilde kullanarak kendi Angular uygulamalar\u0131n\u0131z\u0131 geli\u015ftirmeye ba\u015flayacak bilgi ve beceriye sahip olacaks\u0131n\u0131z.<\/p>\n<h3>Angular ve Angular CLI Nedir?<\/h3>\n<p>Angular, tek sayfa uygulamalar\u0131 olu\u015fturmak i\u00e7in kullan\u0131lan a\u00e7\u0131k kaynakl\u0131, TypeScript tabanl\u0131 bir \u00f6n y\u00fcz web uygulama \u00e7er\u00e7evesidir. Google taraf\u0131ndan geli\u015ftirilen ve bak\u0131m\u0131 yap\u0131lan Angular, bile\u015fen tabanl\u0131 mimarisiyle mod\u00fcler ve yeniden kullan\u0131labilir kod yazmay\u0131 te\u015fvik eder. Performans, \u00f6l\u00e7eklenebilirlik ve geli\u015ftirici verimlili\u011fi odakl\u0131 bir yakla\u015f\u0131mla tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>Angular&#8217;\u0131n temel \u00f6zellikleri aras\u0131nda veri ba\u011flama (data binding), ba\u011f\u0131ml\u0131l\u0131k enjeksiyonu (dependency injection), y\u00f6nlendirme (routing), form y\u00f6netimi ve HTTP istemcisi gibi bir\u00e7ok dahili \u00f6zellik bulunur. Bu \u00f6zellikler, karma\u015f\u0131k web uygulamalar\u0131n\u0131n geli\u015ftirilmesini kolayla\u015ft\u0131r\u0131r ve geli\u015ftiricilere g\u00fc\u00e7l\u00fc bir yap\u0131 sunar.<\/p>\n<h4>Angular CLI&#8217;\u0131n Tan\u0131m\u0131 ve Faydalar\u0131<\/h4>\n<p>Angular CLI (Command Line Interface), Angular uygulamalar\u0131n\u0131 olu\u015fturmak, geli\u015ftirmek ve s\u00fcrd\u00fcrmek i\u00e7in kullan\u0131lan bir komut sat\u0131r\u0131 arac\u0131d\u0131r. Geli\u015ftiricilerin tekrarlayan g\u00f6revleri otomatikle\u015ftirmesine ve en iyi uygulamalar\u0131 takip etmesine yard\u0131mc\u0131 olur. Angular CLI, geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r ve basitle\u015ftirir.<\/p>\n<p>Angular CLI&#8217;\u0131n sundu\u011fu ba\u015fl\u0131ca faydalar \u015funlard\u0131r:<br \/>\n*   <strong>H\u0131zl\u0131 Proje Olu\u015fturma:<\/strong> Tek bir komutla tam yap\u0131land\u0131r\u0131lm\u0131\u015f bir Angular projesi olu\u015fturur. Bu, manuel kurulum ve yap\u0131land\u0131rma ile harcanacak zaman\u0131 ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>Kod \u00dcretimi:<\/strong> Bile\u015fenler (components), servisler (services), mod\u00fcller (modules), direktifler (directives) ve pipe&#8217;lar (pipes) gibi Angular yap\u0131 ta\u015flar\u0131n\u0131 h\u0131zl\u0131 bir \u015fekilde olu\u015fturmak i\u00e7in komutlar sa\u011flar. Bu, yaz\u0131m hatalar\u0131n\u0131 azalt\u0131r ve dosya yap\u0131s\u0131nda tutarl\u0131l\u0131\u011f\u0131 sa\u011flar.<br \/>\n*   <strong>Geli\u015ftirme Sunucusu:<\/strong> Uygulamay\u0131 yerel olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in bir geli\u015ftirme sunucusu sa\u011flar. Canl\u0131 yeniden y\u00fckleme (live reload) \u00f6zelli\u011fi sayesinde kod de\u011fi\u015fiklikleri an\u0131nda taray\u0131c\u0131ya yans\u0131r.<br \/>\n*   <strong>Test Ara\u00e7lar\u0131 Entegrasyonu:<\/strong> Uygulama i\u00e7in birim testleri (unit tests) ve u\u00e7tan uca testleri (end-to-end tests) yap\u0131land\u0131rma ve \u00e7al\u0131\u015ft\u0131rma yetene\u011fi sunar.<br \/>\n*   <strong>Optimizasyon ve Derleme:<\/strong> \u00dcretim i\u00e7in optimize edilmi\u015f, da\u011f\u0131t\u0131ma haz\u0131r uygulama paketleri olu\u015fturur. Bu, kod s\u0131k\u0131\u015ft\u0131rma, a\u011fa\u00e7 sallama (tree shaking) ve di\u011fer performans iyile\u015ftirmelerini i\u00e7erir.<br \/>\n*   <strong>G\u00fcncelleme Kolayl\u0131\u011f\u0131:<\/strong> Angular ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kolayca g\u00fcncellemeyi sa\u011flar, bu da projenin en son s\u00fcr\u00fcmde kalmas\u0131na yard\u0131mc\u0131 olur.<br \/>\n*   <strong>Standartla\u015fma:<\/strong> T\u00fcm Angular projeleri i\u00e7in tutarl\u0131 bir yap\u0131 ve geli\u015ftirme s\u00fcreci sa\u011flar, bu da ekip i\u00e7inde i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131r.<\/p>\n<p>K\u0131sacas\u0131, Angular CLI, Angular geli\u015ftiricilerinin en iyi uygulamalar\u0131 takip etmelerini, verimliliklerini art\u0131rmalar\u0131n\u0131 ve daha az manuel yap\u0131land\u0131rma ile daha fazla zamanlar\u0131n\u0131 kod yazmaya ay\u0131rmalar\u0131n\u0131 sa\u011flayan vazge\u00e7ilmez bir ara\u00e7t\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Kurulum<\/h3>\n<p>Angular CLI&#8217;\u0131 kullanmaya ba\u015flamadan \u00f6nce sisteminizde baz\u0131 temel ara\u00e7lar\u0131n y\u00fckl\u00fc olmas\u0131 gerekmektedir. Bu ara\u00e7lar, Angular uygulamalar\u0131n\u0131 geli\u015ftirmek ve \u00e7al\u0131\u015ft\u0131rmak i\u00e7in vazge\u00e7ilmezdir.<\/p>\n<h4>Node.js ve npm Kurulumu<\/h4>\n<p>Angular, Node.js \u00e7al\u0131\u015fma zaman\u0131 \u00fczerinde \u00e7al\u0131\u015f\u0131r ve paket y\u00f6netimini npm (Node Package Manager) arac\u0131l\u0131\u011f\u0131yla yapar. Bu nedenle, ilk olarak Node.js ve npm&#8217;i sisteminize kurman\u0131z gerekmektedir.<br \/>\n1.  <strong>Node.js \u0130ndirme:<\/strong> Node.js&#8217;in resmi web sitesi olan [nodejs.org](https:\/\/nodejs.org\/) adresine gidin.<br \/>\n2.  <strong>Kurulum:<\/strong> LTS (Long Term Support) s\u00fcr\u00fcm\u00fcn\u00fc indirmeniz \u00f6nerilir, \u00e7\u00fcnk\u00fc bu s\u00fcr\u00fcm en kararl\u0131 ve uzun s\u00fcreli deste\u011fe sahiptir. \u0130ndirilen kurulum dosyas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n ve varsay\u0131lan se\u00e7eneklerle kurulumu tamamlay\u0131n.<br \/>\n3.  <strong>Do\u011frulama:<\/strong> Kurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in komut istemcisini (Windows&#8217;ta <code>cmd<\/code> veya PowerShell, macOS\/Linux&#8217;ta Terminal) a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">node -v\n    npm -v<\/code><\/pre>\n<p>    Bu komutlar, y\u00fckl\u00fc Node.js ve npm s\u00fcr\u00fcmlerini g\u00f6stermelidir. E\u011fer bir s\u00fcr\u00fcm numaras\u0131 g\u00f6r\u00fcyorsan\u0131z, kurulum ba\u015far\u0131l\u0131 demektir. <code>npm<\/code>, Node.js ile birlikte gelir, bu y\u00fczden ayr\u0131ca kurman\u0131za gerek yoktur.<\/p>\n<h4>Angular CLI Kurulumu<\/h4>\n<p>Node.js ve npm y\u00fcklendikten sonra, Angular CLI&#8217;\u0131 global olarak kurabilirsiniz. Global kurulum, CLI komutlar\u0131n\u0131 herhangi bir dizinden \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r.<br \/>\nKomut istemcinizi a\u00e7\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">npm install -g @angular\/cli<\/code><\/pre>\n<p>Bu komut, <code>@angular\/cli<\/code> paketini sisteminizde global olarak kuracakt\u0131r. Kurulumun tamamlanmas\u0131 birka\u00e7 dakika s\u00fcrebilir.<br \/>\nKurulumun ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">ng version<\/code><\/pre>\n<p>Bu komut, y\u00fckl\u00fc Angular CLI s\u00fcr\u00fcm\u00fcn\u00fc ve Angular ekosistemindeki di\u011fer paketlerin s\u00fcr\u00fcmlerini g\u00f6sterecektir.<\/p>\n<h4>Gerekli Di\u011fer Ara\u00e7lar<\/h4>\n<p>Angular geli\u015ftirme deneyiminizi daha verimli hale getirecek baz\u0131 ek ara\u00e7lar \u015funlard\u0131r:<br \/>\n*   <strong>Kod D\u00fczenleyici (IDE):<\/strong><br \/>\n    *   <strong>Visual Studio Code (VS Code):<\/strong> Microsoft taraf\u0131ndan geli\u015ftirilen \u00fccretsiz ve a\u00e7\u0131k kaynakl\u0131 bir kod d\u00fczenleyicidir. Angular geli\u015ftirme i\u00e7in m\u00fckemmel destek sunar (TypeScript deste\u011fi, IntelliSense, hata ay\u0131klama vb.) ve \u00e7ok say\u0131da kullan\u0131\u015fl\u0131 uzant\u0131ya sahiptir. \u015eiddetle tavsiye edilir.<br \/>\n    *   Di\u011fer se\u00e7enekler aras\u0131nda WebStorm (\u00fccretli), Sublime Text veya Atom da bulunabilir.<br \/>\n*   <strong>Git:<\/strong> Versiyon kontrol sistemi olarak Git&#8217;i kullanmak, kodunuzu y\u00f6netmek ve ekip i\u00e7inde i\u015fbirli\u011fi yapmak i\u00e7in hayati \u00f6neme sahiptir. Git&#8217;i [git-scm.com](https:\/\/git-scm.com\/) adresinden indirebilir ve kurabilirsiniz.<\/p>\n<p>Bu ara\u00e7lar\u0131n kurulumu tamamland\u0131\u011f\u0131nda, Angular ile ilk projenizi olu\u015fturmaya haz\u0131rs\u0131n\u0131z demektir.<\/p>\n<h3>\u0130lk Angular Projesini Olu\u015fturma<\/h3>\n<p>Angular CLI&#8217;\u0131n en temel ve en s\u0131k kullan\u0131lan \u00f6zelli\u011fi, yeni bir Angular projesi olu\u015fturmakt\u0131r. Bu i\u015flem, projenin t\u00fcm temel yap\u0131land\u0131rmas\u0131n\u0131 ve dosya yap\u0131s\u0131n\u0131 otomatik olarak olu\u015fturur.<\/p>\n<h4><code>ng new<\/code> Komutu ile Proje Olu\u015fturma<\/h4>\n<p>Yeni bir Angular projesi olu\u015fturmak i\u00e7in <code>ng new<\/code> komutunu kullan\u0131r\u0131z. Komut istemcinizi veya terminalinizi a\u00e7\u0131n ve projenizi olu\u015fturmak istedi\u011finiz dizine gidin. Ard\u0131ndan a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">ng new my-first-angular-app<\/code><\/pre>\n<p>*   <code>my-first-angular-app<\/code>: Olu\u015fturulacak projenin ad\u0131d\u0131r. Bu isim ayn\u0131 zamanda projenin bulundu\u011fu dizinin ad\u0131 olacakt\u0131r.<\/p>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, Angular CLI size birka\u00e7 soru soracakt\u0131r:<br \/>\n1.  <strong><code>Would you like to add Angular routing? (Y\/n)<\/code><\/strong>: Angular y\u00f6nlendirme mod\u00fcl\u00fcn\u00fc projenize eklemek isteyip istemedi\u011finizi sorar. Genellikle <code>y<\/code> (yes) se\u00e7ene\u011fini se\u00e7mek iyi bir fikirdir, \u00e7\u00fcnk\u00fc \u00e7o\u011fu web uygulamas\u0131 farkl\u0131 sayfalar aras\u0131nda gezinme ihtiyac\u0131 duyar.<br \/>\n2.  <strong><code>Which stylesheet format would you like to use? (Use arrow keys)<\/code><\/strong>: Projenizde kullanmak istedi\u011finiz stil sayfas\u0131 format\u0131n\u0131 se\u00e7menizi ister. Se\u00e7enekler aras\u0131nda CSS, SCSS, Sass, Less ve Stylus bulunur. En yayg\u0131n se\u00e7enekler <code>CSS<\/code> veya <code>SCSS<\/code>&#8216;dir. <code>SCSS<\/code> (Sass) daha geli\u015fmi\u015f \u00f6zellikler sundu\u011fu i\u00e7in bir\u00e7ok projede tercih edilir.<\/p>\n<p>Se\u00e7imlerinizi yapt\u0131ktan sonra, Angular CLI projenizi olu\u015fturmaya ba\u015flayacakt\u0131r. Bu i\u015flem, gerekli t\u00fcm npm paketlerini indirir ve projenin temel yap\u0131s\u0131n\u0131 kurar. Bu birka\u00e7 dakika s\u00fcrebilir. \u0130\u015flem tamamland\u0131\u011f\u0131nda, <code>my-first-angular-app<\/code> ad\u0131nda yeni bir dizin olu\u015ftu\u011funu g\u00f6receksiniz.<\/p>\n<h4>Proje Yap\u0131s\u0131na Genel Bak\u0131\u015f<\/h4>\n<p>Olu\u015fturulan projenin dizin yap\u0131s\u0131 olduk\u00e7a standartt\u0131r ve Angular&#8217;\u0131n mod\u00fcler yap\u0131s\u0131n\u0131 yans\u0131t\u0131r. \u0130\u015fte ba\u015fl\u0131ca dizinler ve dosyalar:<br \/>\n*   <strong><code>my-first-angular-app\/<\/code><\/strong> (Proje K\u00f6k Dizini)<br \/>\n    *   <strong><code>node_modules\/<\/code><\/strong>: Projenin t\u00fcm npm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 i\u00e7eren dizin. Bu dizin genellikle <code>.gitignore<\/code> dosyas\u0131na eklenir ve versiyon kontrol sistemine y\u00fcklenmez.<br \/>\n    *   <strong><code>src\/<\/code><\/strong>: Uygulaman\u0131z\u0131n kaynak kodunu i\u00e7eren ana dizin.<br \/>\n        *   <strong><code>app\/<\/code><\/strong>: Uygulaman\u0131z\u0131n ana bile\u015fenlerini ve mod\u00fcllerini i\u00e7eren dizin.<br \/>\n            *   <strong><code>app.component.ts<\/code><\/strong>: Uygulaman\u0131n k\u00f6k bile\u015feni (root component) i\u00e7in TypeScript dosyas\u0131.<br \/>\n            *   <strong><code>app.component.html<\/code><\/strong>: K\u00f6k bile\u015fenin HTML \u015fablonu.<br \/>\n            *   <strong><code>app.component.css<\/code><\/strong>: K\u00f6k bile\u015fenin stil dosyas\u0131.<br \/>\n            *   <strong><code>app.component.spec.ts<\/code><\/strong>: K\u00f6k bile\u015fen i\u00e7in birim test dosyas\u0131.<br \/>\n            *   <strong><code>app.module.ts<\/code><\/strong>: Uygulaman\u0131n k\u00f6k mod\u00fcl\u00fc (root module) i\u00e7in TypeScript dosyas\u0131. Angular uygulamalar\u0131 en az bir mod\u00fcle sahip olmal\u0131d\u0131r (genellikle <code>AppModule<\/code>).<br \/>\n            *   <strong><code>app-routing.module.ts<\/code><\/strong>: E\u011fer y\u00f6nlendirme eklendiyseniz, y\u00f6nlendirme yap\u0131land\u0131rmas\u0131n\u0131 i\u00e7eren mod\u00fcl.<br \/>\n        *   <strong><code>assets\/<\/code><\/strong>: Resimler, ikonlar ve di\u011fer statik dosyalar gibi uygulama varl\u0131klar\u0131n\u0131 i\u00e7eren dizin.<br \/>\n        *   <strong><code>environments\/<\/code><\/strong>: Geli\u015ftirme ve \u00fcretim gibi farkl\u0131 ortamlar i\u00e7in yap\u0131land\u0131rma dosyalar\u0131.<br \/>\n        *   <strong><code>favicon.ico<\/code><\/strong>: Uygulaman\u0131n taray\u0131c\u0131 sekmesinde g\u00f6r\u00fcnen ikon.<br \/>\n        *   <strong><code>index.html<\/code><\/strong>: Uygulaman\u0131n tek HTML sayfas\u0131. Angular uygulamas\u0131 bu sayfaya y\u00fcklenir.<br \/>\n        *   <strong><code>main.ts<\/code><\/strong>: Uygulaman\u0131n ba\u015flang\u0131\u00e7 noktas\u0131. <code>AppModule<\/code>&#8216;\u00fc y\u00fckler.<br \/>\n        *   <strong><code>styles.css<\/code><\/strong>: Uygulaman\u0131n genel stil dosyas\u0131.<br \/>\n    *   <strong><code>angular.json<\/code><\/strong>: Angular CLI&#8217;\u0131n projenin \u00e7e\u015fitli yap\u0131land\u0131rmalar\u0131n\u0131 (derleme se\u00e7enekleri, test yap\u0131land\u0131rmalar\u0131 vb.) y\u00f6netti\u011fi ana yap\u0131land\u0131rma dosyas\u0131.<br \/>\n    *   <strong><code>package.json<\/code><\/strong>: Projenin npm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve betiklerini tan\u0131mlayan dosya.<br \/>\n    *   <strong><code>tsconfig.json<\/code><\/strong>: TypeScript derleyicisi i\u00e7in yap\u0131land\u0131rma dosyas\u0131.<br \/>\n    *   <strong><code>.gitignore<\/code><\/strong>: Git taraf\u0131ndan izlenmeyecek dosyalar\u0131 ve dizinleri belirten dosya.<\/p>\n<p>Bu yap\u0131, Angular&#8217;\u0131n mod\u00fcler ve bile\u015fen tabanl\u0131 felsefesini destekler ve b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar\u0131n d\u00fczenli bir \u015fekilde geli\u015ftirilmesine olanak tan\u0131r.<\/p>\n<h3>Projenizi \u00c7al\u0131\u015ft\u0131rma ve Geli\u015ftirme<\/h3>\n<p>Yeni bir Angular projesi olu\u015fturduktan sonra, onu taray\u0131c\u0131n\u0131zda g\u00f6rmek ve \u00fczerinde geli\u015ftirmeler yapmak i\u00e7in <code>ng serve<\/code> komutunu kullan\u0131r\u0131z.<\/p>\n<h4><code>ng serve<\/code> Komutu<\/h4>\n<p><code>ng serve<\/code> komutu, Angular CLI&#8217;\u0131n yerle\u015fik geli\u015ftirme sunucusunu ba\u015flat\u0131r. Bu sunucu, uygulaman\u0131z\u0131 derler ve taray\u0131c\u0131 \u00fczerinden eri\u015filebilir hale getirir.<br \/>\nProjenizi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<br \/>\n1.  Komut istemcinizi a\u00e7\u0131n.<br \/>\n2.  Olu\u015fturdu\u011funuz projenin k\u00f6k dizinine gidin:<\/p>\n<pre><code class=\"language-bash\">cd my-first-angular-app<\/code><\/pre>\n<p>3.  Geli\u015ftirme sunucusunu ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">ng serve<\/code><\/pre>\n<p>    Bu komut, uygulaman\u0131z\u0131 derleyecek ve varsay\u0131lan olarak <code>http:\/\/localhost:4200\/<\/code> adresinde eri\u015filebilir bir sunucu ba\u015flatacakt\u0131r. Derleme i\u015flemi tamamland\u0131\u011f\u0131nda, terminalde uygulaman\u0131z\u0131n hangi adreste \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 belirten bir mesaj g\u00f6receksiniz.<br \/>\n4.  Taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>http:\/\/localhost:4200\/<\/code> adresine gidin. Angular&#8217;\u0131n varsay\u0131lan kar\u015f\u0131lama sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h4>Canl\u0131 Yeniden Y\u00fckleme (Live Reload)<\/h4>\n<p><code>ng serve<\/code> komutunun en kullan\u0131\u015fl\u0131 \u00f6zelliklerinden biri, canl\u0131 yeniden y\u00fckleme (live reload) deste\u011fidir. Uygulaman\u0131z\u0131n kaynak kodunda herhangi bir de\u011fi\u015fiklik yapt\u0131\u011f\u0131n\u0131zda (bir bile\u015fenin HTML&#8217;inde, CSS&#8217;inde veya TypeScript kodunda), Angular CLI bu de\u011fi\u015fiklikleri otomatik olarak alg\u0131lar, uygulamay\u0131 yeniden derler ve taray\u0131c\u0131n\u0131zdaki sayfay\u0131 otomatik olarak yeniler. Bu, geli\u015ftirme s\u00fcrecini son derece h\u0131zland\u0131r\u0131r ve geri bildirim d\u00f6ng\u00fcs\u00fcn\u00fc k\u0131salt\u0131r.<\/p>\n<h4>Geli\u015ftirme Sunucusu Se\u00e7enekleri<\/h4>\n<p><code>ng serve<\/code> komutuna \u00e7e\u015fitli se\u00e7enekler ekleyerek geli\u015ftirme sunucusunun davran\u0131\u015f\u0131n\u0131 \u00f6zelle\u015ftirebilirsiniz:<br \/>\n*   <strong><code>--open<\/code> veya <code>-o<\/code><\/strong>: Uygulama derlendikten sonra taray\u0131c\u0131n\u0131zda otomatik olarak a\u00e7ar.<\/p>\n<pre><code class=\"language-bash\">ng serve --open<\/code><\/pre>\n<p>*   <strong><code>--port <port_numaras\u0131><\/code><\/strong>: Uygulaman\u0131n \u00e7al\u0131\u015faca\u011f\u0131 port numaras\u0131n\u0131 belirler. Varsay\u0131lan olarak <code>4200<\/code> kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng serve --port 8080<\/code><\/pre>\n<p>*   <strong><code>--host <host_adresi><\/code><\/strong>: Uygulaman\u0131n dinleyece\u011fi host adresini belirler. Varsay\u0131lan olarak <code>localhost<\/code> kullan\u0131l\u0131r. <code>0.0.0.0<\/code> kullanmak, uygulaman\u0131n a\u011fdaki di\u011fer cihazlardan eri\u015filebilir olmas\u0131n\u0131 sa\u011flar (\u00f6rne\u011fin, mobil cihazlarda test ederken).<\/p>\n<pre><code class=\"language-bash\">ng serve --host 0.0.0.0<\/code><\/pre>\n<p>*   <strong><code>--configuration <ortam_ad\u0131><\/code> veya <code>-c<\/code><\/strong>: Farkl\u0131 bir ortam yap\u0131land\u0131rmas\u0131yla (\u00f6rne\u011fin, <code>production<\/code> veya \u00f6zel bir ortam) uygulamay\u0131 derler ve sunar.<\/p>\n<pre><code class=\"language-bash\">ng serve --configuration production<\/code><\/pre>\n<p>    Bu, <code>environments<\/code> dizinindeki ilgili dosyan\u0131n kullan\u0131lmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong><code>--proxy-config <proxy_dosyas\u0131_yolu><\/code><\/strong>: API isteklerini ba\u015fka bir sunucuya y\u00f6nlendirmek i\u00e7in bir proxy yap\u0131land\u0131rma dosyas\u0131 belirtir. Bu, genellikle \u00f6n y\u00fcz uygulaman\u0131z ile arka y\u00fcz (backend) API&#8217;leri aras\u0131ndaki CORS (Cross-Origin Resource Sharing) sorunlar\u0131n\u0131 \u00e7\u00f6zmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng serve --proxy-config proxy.conf.json<\/code><\/pre>\n<p>    <code>proxy.conf.json<\/code> dosyas\u0131 \u00f6rnek i\u00e7eri\u011fi:<\/p>\n<pre><code class=\"language-json\">{\n      \"\/api\": {\n        \"target\": \"http:\/\/localhost:3000\",\n        \"secure\": false,\n        \"changeOrigin\": true\n      }\n    }<\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rma, <code>http:\/\/localhost:4200\/api\/users<\/code> adresine yap\u0131lan istekleri <code>http:\/\/localhost:3000\/api\/users<\/code> adresine y\u00f6nlendirecektir.<\/p>\n<p><code>ng serve<\/code> komutu, Angular geli\u015ftirme s\u00fcrecinin kalbinde yer al\u0131r. Bu komutu etkin bir \u015fekilde kullanarak, kodunuzu h\u0131zl\u0131 bir \u015fekilde test edebilir ve uygulaman\u0131z\u0131 s\u00fcrekli olarak geli\u015ftirebilirsiniz.<\/p>\n<h3>Temel Angular Bile\u015fenleri ve Kavramlar\u0131<\/h3>\n<p>Angular, bile\u015fen tabanl\u0131 bir mimariye sahiptir. Bu b\u00f6l\u00fcmde, bir Angular uygulamas\u0131n\u0131n temel yap\u0131 ta\u015flar\u0131n\u0131 ve Angular CLI ile bunlar\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 inceleyece\u011fiz.<\/p>\n<h4>Bile\u015fenler (Components)<\/h4>\n<p>Bile\u015fenler, Angular uygulamalar\u0131n\u0131n temel yap\u0131 ta\u015flar\u0131d\u0131r. Bir bile\u015fen, bir g\u00f6r\u00fcn\u00fcm (HTML \u015fablonu) ve bu g\u00f6r\u00fcn\u00fcm\u00fcn davran\u0131\u015f\u0131n\u0131 tan\u0131mlayan bir TypeScript s\u0131n\u0131f\u0131ndan olu\u015fur. Her bile\u015fen, uygulaman\u0131n kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fcn (UI) belirli bir b\u00f6l\u00fcm\u00fcn\u00fc temsil eder.<\/p>\n<p>*   <strong>Tan\u0131m ve Rol\u00fc:<\/strong> Bir bile\u015fen, bir HTML \u015fablonu, bir stil dosyas\u0131 (iste\u011fe ba\u011fl\u0131) ve bir TypeScript s\u0131n\u0131f\u0131ndan olu\u015fur. TypeScript s\u0131n\u0131f\u0131, \u015fablondaki verileri ve mant\u0131\u011f\u0131 y\u00f6netir. <code>@Component<\/code> dekorat\u00f6r\u00fc, bir s\u0131n\u0131f\u0131n Angular bile\u015feni oldu\u011funu belirtir ve bile\u015fenin meta verilerini (selector, templateUrl, styleUrls) tan\u0131mlar.<br \/>\n*   <strong><code>ng generate component<\/code> Komutu:<\/strong> Yeni bir bile\u015fen olu\u015fturmak i\u00e7in <code>ng generate component<\/code> (veya k\u0131saca <code>ng g c<\/code>) komutunu kullan\u0131r\u0131z.<\/p>\n<pre><code class=\"language-bash\">ng generate component my-new-component\n    # veya\n    ng g c my-new-component<\/code><\/pre>\n<p>    Bu komut, <code>src\/app\/my-new-component\/<\/code> dizini alt\u0131nda a\u015fa\u011f\u0131daki dosyalar\u0131 olu\u015fturur:<br \/>\n    *   <code>my-new-component.component.ts<\/code><br \/>\n    *   <code>my-new-component.component.html<\/code><br \/>\n    *   <code>my-new-component.component.css<\/code><br \/>\n    *   <code>my-new-component.component.spec.ts<\/code><br \/>\n    Ayr\u0131ca, <code>AppModule<\/code> (veya en yak\u0131n mod\u00fcl) i\u00e7inde yeni bile\u015feni otomatik olarak <code>declarations<\/code> dizisine ekler.<br \/>\n*   <strong>Component Dosyalar\u0131:<\/strong><br \/>\n    *   <strong><code>.ts<\/code> (TypeScript):<\/strong> Bile\u015fenin mant\u0131\u011f\u0131n\u0131 i\u00e7erir. <code>@Component<\/code> dekorat\u00f6r\u00fc ile tan\u0131mlan\u0131r.<\/p>\n<pre><code class=\"language-typescript\">import { Component } from '@angular\/core';\n\n        @Component({\n          selector: 'app-my-new-component', \/\/ HTML'de kullan\u0131lacak etiket ad\u0131\n          templateUrl: '.\/my-new-component.component.html', \/\/ Bile\u015fenin HTML \u015fablonu\n          styleUrls: ['.\/my-new-component.component.css'] \/\/ Bile\u015fenin stil dosyas\u0131\n        })\n        export class MyNewComponentComponent {\n          title = 'Merhaba Angular Bile\u015feni!';\n        }<\/code><\/pre>\n<p>    *   <strong><code>.html<\/code> (\u015eablon):<\/strong> Bile\u015fenin kullan\u0131c\u0131 aray\u00fcz\u00fcn\u00fc tan\u0131mlayan HTML kodu.<\/p>\n<pre><code class=\"language-html\"><h2>{{ title }}<\/h2>\n        <p>Bu benim yeni Angular bile\u015fenim.<\/p><\/code><\/pre>\n<p>    *   <strong><code>.css<\/code> (Stil):<\/strong> Bile\u015fene \u00f6zel stilleri i\u00e7erir. Bile\u015fen stilleri varsay\u0131lan olarak kaps\u00fcllenir, yani di\u011fer bile\u015fenleri etkilemez.<br \/>\n    *   <strong><code>.spec.ts<\/code> (Test):<\/strong> Bile\u015fen i\u00e7in otomatik birim testlerini i\u00e7erir.<br \/>\n*   <strong><code>@Component<\/code> Dekorator\u00fc:<\/strong> Bu dekorat\u00f6r, bir TypeScript s\u0131n\u0131f\u0131n\u0131 Angular bile\u015feni olarak i\u015faretler. <code>selector<\/code> \u00f6zelli\u011fi, bile\u015fenin HTML&#8217;de nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 (<code><app-my-new-component><\/app-my-new-component><\/code>) tan\u0131mlar.<\/p>\n<h4>Mod\u00fcller (Modules)<\/h4>\n<p>Angular mod\u00fclleri (<code>NgModule<\/code>), uygulamay\u0131 mant\u0131ksal bloklara ay\u0131rmak i\u00e7in bir mekanizma sa\u011flar. Her Angular uygulamas\u0131 en az bir k\u00f6k mod\u00fcle (<code>AppModule<\/code>) sahiptir.<\/p>\n<p>*   <strong>Tan\u0131m ve Rol\u00fc:<\/strong> Mod\u00fcller, ilgili bile\u015fenleri, servisleri, pipe&#8217;lar\u0131 ve direktifleri bir araya getirerek uygulaman\u0131n yap\u0131s\u0131n\u0131 d\u00fczenler. <code>@NgModule<\/code> dekorat\u00f6r\u00fc, bir s\u0131n\u0131f\u0131n Angular mod\u00fcl\u00fc oldu\u011funu belirtir ve mod\u00fcl\u00fcn meta verilerini (declarations, imports, providers, bootstrap, exports) tan\u0131mlar.<br \/>\n*   <strong><code>AppModule<\/code>:<\/strong> Her Angular uygulamas\u0131n\u0131n ba\u015flang\u0131\u00e7 noktas\u0131 olan k\u00f6k mod\u00fcld\u00fcr. <code>main.ts<\/code> dosyas\u0131 taraf\u0131ndan y\u00fcklenir.<\/p>\n<pre><code class=\"language-typescript\">import { NgModule } from '@angular\/core';\n    import { BrowserModule } from '@angular\/platform-browser';\n    import { AppRoutingModule } from '.\/app-routing.module';\n    import { AppComponent } from '.\/app.component';\n    import { MyNewComponentComponent } from '.\/my-new-component\/my-new-component.component'; \/\/ Yeni bile\u015fen\n\n    @NgModule({\n      declarations: [ \/\/ Bu mod\u00fclde kullan\u0131lan bile\u015fenler, direktifler, pipe'lar\n        AppComponent,\n        MyNewComponentComponent\n      ],\n      imports: [ \/\/ Bu mod\u00fcl\u00fcn ba\u011f\u0131ml\u0131 oldu\u011fu di\u011fer Angular mod\u00fclleri\n        BrowserModule,\n        AppRoutingModule\n      ],\n      providers: [], \/\/ Servisler\n      bootstrap: [AppComponent] \/\/ Uygulaman\u0131n ba\u015flang\u0131\u00e7 bile\u015feni (sadece k\u00f6k mod\u00fclde)\n    })\n    export class AppModule { }<\/code><\/pre>\n<p>*   <strong>\u00d6zellik Mod\u00fclleri (Feature Modules):<\/strong> B\u00fcy\u00fck uygulamalarda, belirli bir \u00f6zelli\u011fe ait bile\u015fenleri, servisleri ve y\u00f6nlendirmeleri kendi mod\u00fcllerinde gruplamak yayg\u0131n bir uygulamad\u0131r. Bu, kodun daha d\u00fczenli olmas\u0131n\u0131 sa\u011flar ve uygulaman\u0131n tembel y\u00fcklenmesine (lazy loading) olanak tan\u0131r, bu da ba\u015flang\u0131\u00e7 performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng generate module admin --route admin --module app<\/code><\/pre>\n<p>    Bu komut, <code>admin<\/code> ad\u0131nda bir \u00f6zellik mod\u00fcl\u00fc olu\u015fturur ve <code>app.module.ts<\/code> i\u00e7ine bir rota ile ekler.<\/p>\n<h4>Servisler (Services) ve Ba\u011f\u0131ml\u0131l\u0131k Enjeksiyonu (Dependency Injection)<\/h4>\n<p>Servisler, veri getirme, i\u015f mant\u0131\u011f\u0131 y\u00fcr\u00fctme veya birden fazla bile\u015fen aras\u0131nda veri payla\u015fma gibi belirli bir g\u00f6revi yerine getiren TypeScript s\u0131n\u0131flar\u0131d\u0131r. Angular&#8217;daki ba\u011f\u0131ml\u0131l\u0131k enjeksiyonu sistemi, bile\u015fenlerin do\u011frudan servis \u00f6rneklerini olu\u015fturmak yerine bunlar\u0131 talep etmesine olanak tan\u0131r.<\/p>\n<p>*   <strong>Tan\u0131m ve Rol\u00fc:<\/strong> Servisler, uygulaman\u0131n farkl\u0131 b\u00f6l\u00fcmlerinde yeniden kullan\u0131labilen i\u015flevsellik sa\u011flar. Genellikle veri i\u015flemleri, API \u00e7a\u011fr\u0131lar\u0131 veya ortak yard\u0131mc\u0131 i\u015flevler gibi g\u00f6revler i\u00e7in kullan\u0131l\u0131rlar. <code>@Injectable<\/code> dekorat\u00f6r\u00fc, bir s\u0131n\u0131f\u0131n bir servis oldu\u011funu ve ba\u011f\u0131ml\u0131l\u0131k enjeksiyonu sistemi taraf\u0131ndan enjekte edilebilece\u011fini belirtir.<br \/>\n*   <strong><code>ng generate service<\/code> Komutu:<\/strong> Yeni bir servis olu\u015fturmak i\u00e7in <code>ng generate service<\/code> (veya k\u0131saca <code>ng g s<\/code>) komutunu kullan\u0131r\u0131z.<\/p>\n<pre><code class=\"language-bash\">ng generate service data\n    # veya\n    ng g s data<\/code><\/pre>\n<p>    Bu komut, <code>src\/app\/data.service.ts<\/code> ve <code>src\/app\/data.service.spec.ts<\/code> dosyalar\u0131n\u0131 olu\u015fturur.<br \/>\n*   <strong><code>@Injectable<\/code> Dekorator\u00fc:<\/strong><\/p>\n<pre><code class=\"language-typescript\">import { Injectable } from '@angular\/core';\n\n    @Injectable({\n      providedIn: 'root' \/\/ Servisin nerede sa\u011flanaca\u011f\u0131n\u0131 belirtir\n    })\n    export class DataService {\n      constructor() { }\n\n      getUsers(): string[] {\n        return ['Alice', 'Bob', 'Charlie'];\n      }\n    }<\/code><\/pre>\n<p>    <code>providedIn: 'root'<\/code>, servisin uygulaman\u0131n k\u00f6k seviyesinde sa\u011flanaca\u011f\u0131 anlam\u0131na gelir, yani uygulama boyunca tek bir \u00f6rne\u011fi (singleton) olacakt\u0131r.<br \/>\n*   <strong>Sa\u011flay\u0131c\u0131lar (Providers):<\/strong> Bir servisi kullanabilmek i\u00e7in, onu bir mod\u00fcl\u00fcn veya bile\u015fenin sa\u011flay\u0131c\u0131lar\u0131na (<code>providers<\/code> dizisi) eklemeniz gerekir. <code>providedIn: 'root'<\/code> ile servis otomatik olarak k\u00f6k mod\u00fcl taraf\u0131ndan sa\u011flan\u0131r. Bir bile\u015fenin i\u00e7inde bir servisi kullanmak i\u00e7in, bile\u015fenin yap\u0131c\u0131 metoduna (constructor) ba\u011f\u0131ml\u0131l\u0131k olarak enjekte ederiz:<\/p>\n<pre><code class=\"language-typescript\">import { Component, OnInit } from '@angular\/core';\n    import { DataService } from '..\/data.service';\n\n    @Component({\n      selector: 'app-my-new-component',\n      templateUrl: '.\/my-new-component.component.html',\n      styleUrls: ['.\/my-new-component.component.css']\n    })\n    export class MyNewComponentComponent implements OnInit {\n      users: string[] = [];\n\n      constructor(private dataService: DataService) { } \/\/ Servisi enjekte et\n\n      ngOnInit(): void {\n        this.users = this.dataService.getUsers();\n      }\n    }<\/code><\/pre>\n<h4>Y\u00f6nlendirme (Routing)<\/h4>\n<p>Angular y\u00f6nlendirme, uygulaman\u0131n farkl\u0131 g\u00f6r\u00fcn\u00fcmleri aras\u0131nda gezinmeyi sa\u011flar. Tek sayfa uygulamalar\u0131nda, taray\u0131c\u0131n\u0131n URL&#8217;ini de\u011fi\u015ftirerek farkl\u0131 bile\u015fenleri y\u00fcklemek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>*   <strong><code>AppRoutingModule<\/code>:<\/strong> <code>ng new<\/code> komutuyla y\u00f6nlendirmeyi etkinle\u015ftirdiyseniz, projenizde <code>app-routing.module.ts<\/code> ad\u0131nda bir dosya olu\u015fturulur. Bu mod\u00fcl, uygulaman\u0131n rotalar\u0131n\u0131 tan\u0131mlar.<\/p>\n<pre><code class=\"language-typescript\">import { NgModule } from '@angular\/core';\n    import { RouterModule, Routes } from '@angular\/router';\n    import { MyNewComponentComponent } from '.\/my-new-component\/my-new-component.component';\n    import { AppComponent } from '.\/app.component';\n\n    const routes: Routes = [\n      { path: 'home', component: AppComponent }, \/\/ \u00d6rnek: Ana sayfa\n      { path: 'my-component', component: MyNewComponentComponent },\n      { path: '', redirectTo: '\/home', pathMatch: 'full' }, \/\/ Varsay\u0131lan y\u00f6nlendirme\n      { path: '<em><\/em>', redirectTo: '\/home' } \/\/ Ge\u00e7ersiz URL'ler i\u00e7in\n    ];\n\n    @NgModule({\n      imports: [RouterModule.forRoot(routes)],\n      exports: [RouterModule]\n    })\n    export class AppRoutingModule { }<\/code><\/pre>\n<p>*   <strong>Rota Tan\u0131mlar\u0131:<\/strong> <code>Routes<\/code> dizisi, URL yollar\u0131 (<code>path<\/code>) ve bu yollarla ili\u015fkilendirilecek bile\u015fenleri (<code>component<\/code>) i\u00e7erir.<br \/>\n*   <strong><code>routerLink<\/code> ve <code>router-outlet<\/code>:<\/strong><br \/>\n    *   <code>routerLink<\/code> direktifi, HTML&#8217;deki <code><a><\/code> etiketlerini Angular y\u00f6nlendirme ba\u011flant\u0131lar\u0131na d\u00f6n\u00fc\u015ft\u00fcr\u00fcr.<\/p>\n<pre><code class=\"language-html\"><nav>\n          <a routerLink=\"\/home\">Ana Sayfa<\/a> |\n          <a routerLink=\"\/my-component\">Bile\u015fenim<\/a>\n        <\/nav><\/code><\/pre>\n<p>    *   <code>router-outlet<\/code> bile\u015feni, y\u00f6nlendiricinin e\u015fle\u015fen bile\u015feni nereye y\u00fckleyece\u011fini belirtir. Genellikle <code>app.component.html<\/code> i\u00e7inde bulunur.<\/p>\n<pre><code class=\"language-html\"><router-outlet><\/router-outlet><\/code><\/pre>\n<p>Bu temel yap\u0131 ta\u015flar\u0131, Angular uygulamalar\u0131n\u0131n iskeletini olu\u015fturur. Angular CLI, bu yap\u0131 ta\u015flar\u0131n\u0131 h\u0131zl\u0131 ve hatas\u0131z bir \u015fekilde olu\u015fturman\u0131za yard\u0131mc\u0131 olarak geli\u015ftirme s\u00fcrecinizi b\u00fcy\u00fck \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3>Angular CLI ile Daha Fazla \u00dcretkenlik<\/h3>\n<p>Angular CLI, sadece proje olu\u015fturmakla kalmaz, ayn\u0131 zamanda geli\u015ftirme s\u00fcrecinin bir\u00e7ok a\u015famas\u0131nda \u00fcretkenli\u011finizi art\u0131ran \u00e7e\u015fitli komutlar sunar.<\/p>\n<h4>Kod Olu\u015fturma (Generating Code)<\/h4>\n<p><code>ng generate<\/code> (veya k\u0131saca <code>ng g<\/code>) komutu, Angular uygulamalar\u0131n\u0131n farkl\u0131 yap\u0131 ta\u015flar\u0131n\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r. Bu, boilerplate kod yazmaktan kurtar\u0131r ve tutarl\u0131 bir proje yap\u0131s\u0131 sa\u011flar.<\/p>\n<p>*   <strong><code>ng generate component <isim><\/code> (ng g c <isim>)<\/strong>: Yeni bir bile\u015fen olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng g c user-profile --flat --skip-tests\n    # --flat: Bile\u015feni kendi dizini yerine mevcut dizine olu\u015fturur.\n    # --skip-tests: Test dosyas\u0131 olu\u015fturmaz.<\/code><\/pre>\n<p>*   <strong><code>ng generate service <isim><\/code> (ng g s <isim>)<\/strong>: Yeni bir servis olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng g s auth --skip-tests<\/code><\/pre>\n<p>*   <strong><code>ng generate module <isim><\/code> (ng g m <isim>)<\/strong>: Yeni bir mod\u00fcl olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng g m products --routing\n    # --routing: Mod\u00fcl i\u00e7in bir y\u00f6nlendirme mod\u00fcl\u00fc de olu\u015fturur.<\/code><\/pre>\n<p>*   <strong><code>ng generate directive <isim><\/code> (ng g d <isim>)<\/strong>: Yeni bir direktif olu\u015fturur. Direktifler, DOM \u00f6\u011felerinin davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirir.<\/p>\n<pre><code class=\"language-bash\">ng g d highlight<\/code><\/pre>\n<p>*   <strong><code>ng generate pipe <isim><\/code> (ng g p <isim>)<\/strong>: Yeni bir pipe olu\u015fturur. Pipe&#8217;lar, \u015fablonlardaki veriyi bi\u00e7imlendirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng g p currency-format<\/code><\/pre>\n<p>*   <strong><code>ng generate guard <isim><\/code> (ng g g <isim>)<\/strong>: Yeni bir guard olu\u015fturur. Guard&#8217;lar, bir rotaya eri\u015fimi kontrol etmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng g g auth --implements CanActivate\n    # --implements: Guard'\u0131n uygulayaca\u011f\u0131 aray\u00fcz\u00fc belirtir (CanActivate, CanLoad vb.).<\/code><\/pre>\n<p>*   <strong><code>ng generate interface <isim><\/code> (ng g i <isim>)<\/strong>: Yeni bir TypeScript aray\u00fcz\u00fc olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng g i user<\/code><\/pre>\n<p>*   <strong><code>ng generate enum <isim><\/code> (ng g e <isim>)<\/strong>: Yeni bir TypeScript enum&#8217;u olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng g e user-role<\/code><\/pre>\n<p>Bu komutlar, zaman kazand\u0131rman\u0131n yan\u0131 s\u0131ra, projenizin her zaman Angular&#8217;\u0131n \u00f6nerdi\u011fi standartlara uygun kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Uygulamay\u0131 Test Etme<\/h4>\n<p>Angular CLI, uygulamalar\u0131n\u0131z\u0131 test etmek i\u00e7in yerle\u015fik destek sunar. Birim testleri (unit tests) ve u\u00e7tan uca testler (end-to-end tests) i\u00e7in gerekli yap\u0131land\u0131rmalar\u0131 ve komutlar\u0131 sa\u011flar.<\/p>\n<p>*   <strong>Birim Testleri (Unit Tests):<\/strong> Bile\u015fenlerin, servislerin ve di\u011fer k\u00fc\u00e7\u00fck kod birimlerinin izole bir \u015fekilde do\u011fru \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol eder. Angular CLI, birim testleri i\u00e7in varsay\u0131lan olarak Karma test \u00e7al\u0131\u015ft\u0131r\u0131c\u0131s\u0131 ve Jasmine test \u00e7er\u00e7evesini kullan\u0131r.<br \/>\n    *   Testleri \u00e7al\u0131\u015ft\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">ng test<\/code><\/pre>\n<p>        Bu komut, bir taray\u0131c\u0131 penceresi a\u00e7ar ve test sonu\u00e7lar\u0131n\u0131 g\u00f6sterir. Kodda yap\u0131lan de\u011fi\u015fiklikler canl\u0131 olarak yeniden derlenir ve testler tekrar \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.<br \/>\n*   <strong>U\u00e7tan Uca Testler (End-to-End Tests):<\/strong> Uygulaman\u0131n bir b\u00fct\u00fcn olarak, kullan\u0131c\u0131 aray\u00fcz\u00fc \u00fczerinden kullan\u0131c\u0131 ak\u0131\u015flar\u0131n\u0131 taklit ederek do\u011fru \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol eder. Angular CLI&#8217;\u0131n eski s\u00fcr\u00fcmleri Protractor&#8217;\u0131 varsay\u0131lan olarak kullan\u0131rken, Angular 16 itibar\u0131yla Protractor deste\u011fi kald\u0131r\u0131lm\u0131\u015ft\u0131r. Art\u0131k Cypress, Playwright veya Jest gibi daha modern ara\u00e7lar tercih edilmektedir.<br \/>\n    *   Yeni bir projede e2e testi \u00e7al\u0131\u015ft\u0131rmak i\u00e7in (e\u011fer bir test \u00e7er\u00e7evesi yap\u0131land\u0131r\u0131lm\u0131\u015fsa):<\/p>\n<pre><code class=\"language-bash\">ng e2e<\/code><\/pre>\n<p>    *   E\u011fer yeni bir projede e2e testleri i\u00e7in bir ara\u00e7 kurman\u0131z gerekiyorsa, <code>ng add<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ng add @cypress\/schematic\n        # veya\n        ng add @briebug\/cypress-schematic<\/code><\/pre>\n<h4>Uygulamay\u0131 Derleme ve Da\u011f\u0131tma (Building and Deploying)<\/h4>\n<p>Uygulaman\u0131z\u0131 geli\u015ftirme ortam\u0131nda \u00e7al\u0131\u015ft\u0131rd\u0131ktan ve test ettikten sonra, onu \u00fcretim ortam\u0131na da\u011f\u0131t\u0131ma haz\u0131r hale getirmek i\u00e7in derlemeniz gerekir.<\/p>\n<p>*   <strong><code>ng build<\/code> Komutu:<\/strong> Bu komut, uygulaman\u0131z\u0131 derler ve da\u011f\u0131t\u0131ma haz\u0131r statik dosyalar\u0131 olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">ng build<\/code><\/pre>\n<p>    Bu komut, uygulaman\u0131n <code>dist\/my-first-angular-app\/<\/code> dizini alt\u0131nda derlenmi\u015f dosyalar\u0131n\u0131 olu\u015fturur. Bu dosyalar, bir web sunucusunda bar\u0131nd\u0131r\u0131labilir.<br \/>\n*   <strong>\u00dcretim Modu (Production Mode) ve Optimizasyonlar:<\/strong> \u00dcretim i\u00e7in derleme yaparken, Angular CLI otomatik olarak \u00e7e\u015fitli optimizasyonlar uygular:<br \/>\n    *   Kod s\u0131k\u0131\u015ft\u0131rma (minification)<br \/>\n    *   A\u011fa\u00e7 sallama (tree shaking) &#8211; kullan\u0131lmayan kodu kald\u0131r\u0131r<br \/>\n    *   AOT (Ahead-of-Time) derleme &#8211; performans\u0131 art\u0131r\u0131r<br \/>\n    *   \u00d6nbelle\u011fe alma i\u00e7in dosya adlar\u0131na hash ekleme<br \/>\n    \u00dcretim modu i\u00e7in derleme yapmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">ng build --configuration production\n    # veya k\u0131saca\n    ng build --prod<\/code><\/pre>\n<p>    <code>--prod<\/code> bayra\u011f\u0131, Angular 10&#8217;dan itibaren <code>--configuration production<\/code> ile de\u011fi\u015ftirilmi\u015ftir, ancak geriye d\u00f6n\u00fck uyumluluk i\u00e7in hala \u00e7al\u0131\u015fabilir. En g\u00fcncel CLI s\u00fcr\u00fcmlerinde <code>--configuration production<\/code> kullan\u0131lmas\u0131 \u00f6nerilir.<br \/>\n*   <strong>Da\u011f\u0131t\u0131m Stratejileri:<\/strong> <code>ng build --configuration production<\/code> komutuyla olu\u015fturulan dosyalar, herhangi bir statik dosya sunucusuna da\u011f\u0131t\u0131labilir. Yayg\u0131n da\u011f\u0131t\u0131m y\u00f6ntemleri \u015funlard\u0131r:<br \/>\n    *   <strong>Statik Web Sunucular\u0131:<\/strong> Nginx, Apache gibi geleneksel web sunucular\u0131.<br \/>\n    *   <strong>Bulut Platformlar\u0131:<\/strong> Firebase Hosting, Netlify, Vercel, AWS S3 + CloudFront gibi platformlar.<br \/>\n    *   <strong>Node.js Sunucular\u0131:<\/strong> Express.js gibi bir Node.js sunucusuyla entegre edilebilir.<br \/>\n*   <strong><code>ng deploy<\/code> Komutu:<\/strong> Angular CLI, baz\u0131 platformlar i\u00e7in do\u011frudan da\u011f\u0131t\u0131m (<code>ng deploy<\/code>) komutunu da destekler. Bu, genellikle <code>ng add<\/code> ile eklenen bir da\u011f\u0131t\u0131m \u015femas\u0131 arac\u0131l\u0131\u011f\u0131yla \u00e7al\u0131\u015f\u0131r. \u00d6rne\u011fin, Firebase&#8217;e da\u011f\u0131t\u0131m i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">ng add @angular\/fire\n    # Ard\u0131ndan:\n    ng deploy<\/code><\/pre>\n<p>Bu ara\u00e7lar ve komutlar, Angular geli\u015ftiricilerinin t\u00fcm geli\u015ftirme ya\u015fam d\u00f6ng\u00fcs\u00fc boyunca verimli ve tutarl\u0131 kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Angular CLI \u0130leri Seviye Kullan\u0131m<\/h3>\n<p>Angular CLI&#8217;\u0131n temel i\u015flevlerinin \u00f6tesinde, daha karma\u015f\u0131k proje yap\u0131land\u0131rmalar\u0131 ve geli\u015ftirme senaryolar\u0131 i\u00e7in ileri d\u00fczey \u00f6zellikler de sunar.<\/p>\n<h4>Yap\u0131land\u0131rma (Configuration)<\/h4>\n<p>Angular CLI, projenin davran\u0131\u015f\u0131n\u0131 ve derleme s\u00fcrecini kontrol etmek i\u00e7in kapsaml\u0131 yap\u0131land\u0131rma se\u00e7enekleri sunar.<\/p>\n<p>*   <strong><code>angular.json<\/code> Dosyas\u0131:<\/strong> Bu dosya, Angular \u00e7al\u0131\u015fma alan\u0131n\u0131n (workspace) ve projelerinin ana yap\u0131land\u0131rma dosyas\u0131d\u0131r. T\u00fcm CLI komutlar\u0131, bu dosyadaki bilgilere g\u00f6re \u00e7al\u0131\u015f\u0131r. \u0130\u00e7inde:<br \/>\n    *   \u00c7al\u0131\u015fma alan\u0131 seviyesinde ayarlar.<br \/>\n    *   Her bir projenin ad\u0131, k\u00f6k dizini ve derleme, test, linting gibi hedefler i\u00e7in yap\u0131land\u0131rmalar\u0131.<br \/>\n    *   Farkl\u0131 ortamlar i\u00e7in yap\u0131land\u0131rmalar (<code>configurations<\/code>).<br \/>\n    *   Stil ve betik dosyalar\u0131 i\u00e7in global referanslar.<br \/>\n    <code>angular.json<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek derleme \u00e7\u0131kt\u0131lar\u0131n\u0131, stil \u00f6ni\u015flemcilerini, test ayarlar\u0131n\u0131 ve daha fazlas\u0131n\u0131 \u00f6zelle\u015ftirebilirsiniz. \u00d6rne\u011fin, CSS yerine Sass kullanmak veya belirli bir derleme \u00e7\u0131kt\u0131s\u0131n\u0131 de\u011fi\u015ftirmek i\u00e7in bu dosyay\u0131 d\u00fczenlersiniz.<br \/>\n*   <strong>Ortam De\u011fi\u015fkenleri (Environment Variables):<\/strong> <code>src\/environments\/<\/code> dizini, farkl\u0131 ortamlar (geli\u015ftirme, \u00fcretim, test vb.) i\u00e7in yap\u0131land\u0131rma dosyalar\u0131n\u0131 i\u00e7erir. Bu dosyalar, API URL&#8217;leri veya anahtarlar gibi ortama \u00f6zel de\u011ferleri saklamak i\u00e7in kullan\u0131l\u0131r.<br \/>\n    *   <code>environment.ts<\/code> (geli\u015ftirme ortam\u0131 i\u00e7in)<br \/>\n    *   <code>environment.prod.ts<\/code> (\u00fcretim ortam\u0131 i\u00e7in)<br \/>\n    <code>ng serve<\/code> varsay\u0131lan olarak <code>environment.ts<\/code> kullan\u0131rken, <code>ng build --configuration production<\/code> komutu <code>environment.prod.ts<\/code> dosyas\u0131n\u0131 kullan\u0131r. Kendi \u00f6zel ortamlar\u0131n\u0131z\u0131 da tan\u0131mlayabilirsiniz.<\/p>\n<pre><code class=\"language-typescript\">\/\/ src\/environments\/environment.ts\n    export const environment = {\n      production: false,\n      apiUrl: 'http:\/\/localhost:3000\/api'\n    };\n\n    \/\/ src\/environments\/environment.prod.ts\n    export const environment = {\n      production: true,\n      apiUrl: 'https:\/\/api.yourdomain.com\/api'\n    };<\/code><\/pre>\n<p>    Uygulama i\u00e7inde bu de\u011fi\u015fkenlere eri\u015fmek i\u00e7in:<\/p>\n<pre><code class=\"language-typescript\">import { environment } from '..\/environments\/environment';\n\n    \/\/ ...\n    if (environment.production) {\n      console.log('\u00dcretim modunda \u00e7al\u0131\u015f\u0131yor!');\n    }\n    console.log('API URL:', environment.apiUrl);<\/code><\/pre>\n<h4>K\u00fct\u00fcphaneler (Libraries)<\/h4>\n<p>B\u00fcy\u00fck Angular projelerinde veya birden fazla projenin ayn\u0131 kod taban\u0131n\u0131 payla\u015fmas\u0131 gereken durumlarda, payla\u015f\u0131lan i\u015flevselli\u011fi Angular k\u00fct\u00fcphaneleri olarak paketlemek iyi bir uygulamad\u0131r.<\/p>\n<p>*   <strong><code>ng generate library <isim><\/code> Komutu:<\/strong><\/p>\n<pre><code class=\"language-bash\">ng generate library my-shared-lib\n    # veya\n    ng g lib my-shared-lib<\/code><\/pre>\n<p>    Bu komut, \u00e7al\u0131\u015fma alan\u0131n\u0131zda yeni bir k\u00fct\u00fcphane projesi olu\u015fturur. K\u00fct\u00fcphane, kendi mod\u00fcl\u00fc, bile\u015fenleri, servisleri ve testleri ile birlikte gelir. K\u00fct\u00fcphaneler, <code>dist\/my-shared-lib<\/code> dizinine derlenir ve di\u011fer Angular projelerinde veya npm paketleri olarak kullan\u0131labilir.<br \/>\n    K\u00fct\u00fcphaneler, kodun yeniden kullan\u0131labilirli\u011fini art\u0131r\u0131r, mod\u00fclerli\u011fi te\u015fvik eder ve b\u00fcy\u00fck ekiplerde i\u015fbirli\u011fini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>\u015eemalar (Schematics)<\/h4>\n<p>Schematics, Angular CLI&#8217;\u0131n arkas\u0131ndaki g\u00fc\u00e7l\u00fc kod \u00fcretme ve d\u00f6n\u00fc\u015ft\u00fcrme motorudur. Uygulama iskeletleri olu\u015fturmaktan, kod d\u00f6n\u00fc\u015ft\u00fcrmeye ve yeni \u00f6zellikler eklemeye kadar her \u015feyi otomatikle\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>*   <strong>Tan\u0131m:<\/strong> Schematics, TypeScript&#8217;te yaz\u0131lm\u0131\u015f, dosya sistemindeki de\u011fi\u015fiklikleri tan\u0131mlayan ve uygulayan \u015fablon tabanl\u0131 kod \u00fcreticileridir. <code>ng generate<\/code> ve <code>ng add<\/code> gibi t\u00fcm CLI komutlar\u0131, Schematics kullan\u0131r.<br \/>\n*   <strong><code>ng add<\/code> Komutu:<\/strong> Bir Angular uygulamas\u0131na yeni bir yetenek (\u00f6rne\u011fin, bir UI k\u00fct\u00fcphanesi, PWA deste\u011fi, state management) eklemek i\u00e7in kullan\u0131l\u0131r. Bu komut, ilgili npm paketini y\u00fckler ve projenizi bu paketi kullanacak \u015fekilde otomatik olarak yap\u0131land\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng add @angular\/material\n    # Angular Material k\u00fct\u00fcphanesini ekler ve projenizi yap\u0131land\u0131r\u0131r.\n\n    ng add @angular\/pwa\n    # Uygulaman\u0131za PWA (Progressive Web App) deste\u011fi ekler.<\/code><\/pre>\n<p>*   <strong><code>ng update<\/code> Komutu:<\/strong> Angular ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 g\u00fcncellemek i\u00e7in kullan\u0131l\u0131r. Bu komut, sadece paketleri g\u00fcncellemekle kalmaz, ayn\u0131 zamanda projenizin kod taban\u0131nda gerekli otomatik ge\u00e7i\u015fleri (migrations) de yapar. Bu, b\u00fcy\u00fck s\u00fcr\u00fcm g\u00fcncellemelerinde (\u00f6rne\u011fin, Angular 15&#8217;ten 16&#8217;ya ge\u00e7i\u015f) olduk\u00e7a faydal\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">ng update\n    # Angular ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 g\u00fcncelleyebilece\u011finiz \u00f6nerileri g\u00f6sterir.\n\n    ng update @angular\/cli @angular\/core\n    # Angular CLI ve \u00e7ekirdek Angular paketlerini g\u00fcncelleyerek ge\u00e7i\u015fleri \u00e7al\u0131\u015ft\u0131r\u0131r.<\/code><\/pre>\n<p>Schematics, Angular ekosistemindeki tutarl\u0131l\u0131\u011f\u0131 ve geli\u015ftirici deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131ran g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Angular CLI ile \u00e7al\u0131\u015f\u0131rken zaman zaman baz\u0131 sorunlarla kar\u015f\u0131la\u015fabilirsiniz. \u0130\u015fte en yayg\u0131n sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Kurulum Hatalar\u0131<\/h4>\n<p>*   <strong>Node.js\/npm S\u00fcr\u00fcm Uyumsuzlu\u011fu:<\/strong> Angular&#8217;\u0131n belirli bir s\u00fcr\u00fcm\u00fc, Node.js&#8217;in belirli bir s\u00fcr\u00fcm aral\u0131\u011f\u0131n\u0131 gerektirebilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>ng version<\/code> komutu ile Angular CLI s\u00fcr\u00fcm\u00fcn\u00fcz\u00fc kontrol edin ve Angular dok\u00fcmantasyonundan uyumlu Node.js s\u00fcr\u00fcm\u00fcn\u00fc \u00f6\u011frenin. Node.js&#8217;i <code>nvm<\/code> (Node Version Manager) gibi ara\u00e7larla y\u00f6neterek farkl\u0131 projeler i\u00e7in farkl\u0131 Node.js s\u00fcr\u00fcmleri kullanabilirsiniz.<br \/>\n*   <strong>Global Paket Kurulum Hatalar\u0131 (Yetki Sorunlar\u0131):<\/strong> <code>npm install -g @angular\/cli<\/code> komutu \u00e7al\u0131\u015f\u0131rken yetki hatalar\u0131 alabilirsiniz (\u00f6zellikle Linux\/macOS&#8217;ta).<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>sudo npm install -g @angular\/cli<\/code> komutunu kullan\u0131n (dikkatli kullan\u0131lmas\u0131 \u00f6nerilir). Veya npm&#8217;in global paket kurulum dizinini de\u011fi\u015ftirin (daha g\u00fcvenli bir y\u00f6ntemdir, npm dok\u00fcmantasyonunda detaylar\u0131 bulunur).<br \/>\n*   <strong><code>ng<\/code> Komutu Bulunam\u0131yor:<\/strong> Angular CLI&#8217;\u0131 kurduktan sonra <code>ng<\/code> komutu tan\u0131nm\u0131yorsa, PATH de\u011fi\u015fkeninizde bir sorun olabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Node.js ve npm&#8217;in do\u011fru bir \u015fekilde kuruldu\u011fundan ve npm global paket dizininin sisteminizin PATH de\u011fi\u015fkenine eklendi\u011finden emin olun. Bilgisayar\u0131n\u0131z\u0131 yeniden ba\u015flatmak bazen bu t\u00fcr sorunlar\u0131 \u00e7\u00f6zebilir.<\/p>\n<h4>Ba\u011f\u0131ml\u0131l\u0131k Sorunlar\u0131<\/h4>\n<p>*   <strong><code>node_modules<\/code> Bozulmas\u0131:<\/strong> Bazen <code>node_modules<\/code> dizini veya <code>package-lock.json<\/code> dosyas\u0131 bozulabilir, bu da derleme veya \u00e7al\u0131\u015ft\u0131rma hatalar\u0131na yol a\u00e7ar.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Proje dizininizde <code>node_modules<\/code> dizinini ve <code>package-lock.json<\/code> (veya <code>yarn.lock<\/code> e\u011fer Yarn kullan\u0131yorsan\u0131z) dosyas\u0131n\u0131 silin, ard\u0131ndan <code>npm install<\/code> (veya <code>yarn install<\/code>) komutunu tekrar \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n*   <strong>Eksik Ba\u011f\u0131ml\u0131l\u0131klar:<\/strong> Bir paket eksik oldu\u011funda veya yanl\u0131\u015f y\u00fcklendi\u011finde <code>Module not found<\/code> hatalar\u0131 alabilirsiniz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> <code>package.json<\/code> dosyan\u0131zdaki ba\u011f\u0131ml\u0131l\u0131klar\u0131 kontrol edin ve eksik olanlar\u0131 <code>npm install <paket_ad\u0131><\/code> komutuyla manuel olarak y\u00fckleyin. Ard\u0131ndan <code>npm install<\/code> komutunu tekrar \u00e7al\u0131\u015ft\u0131r\u0131n.<\/p>\n<h4>Derleme ve \u00c7al\u0131\u015ft\u0131rma Hatalar\u0131<\/h4>\n<p>*   <strong>TypeScript Hatalar\u0131:<\/strong> TypeScript, derleme zaman\u0131nda s\u0131k\u0131 tip denetimi yapar. Hatal\u0131 kod, derleme i\u015flemini durdurabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Hata mesajlar\u0131n\u0131 dikkatlice okuyun. Genellikle hata, dosya ad\u0131 ve sat\u0131r numaras\u0131 ile birlikte gelir. TypeScript yap\u0131land\u0131rman\u0131z\u0131 (<code>tsconfig.json<\/code>) kontrol edin ve kodunuzu d\u00fczeltin.<br \/>\n*   <strong>Port \u00c7ak\u0131\u015fmas\u0131:<\/strong> <code>ng serve<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131rken <code>Port 4200 is already in use<\/code> gibi bir hata alabilirsiniz.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Ba\u015fka bir uygulaman\u0131n 4200 portunu kulland\u0131\u011f\u0131 anlam\u0131na gelir. <code>ng serve --port <yeni_port_numaras\u0131><\/code> (\u00f6rne\u011fin <code>ng serve --port 4201<\/code>) komutunu kullanarak farkl\u0131 bir portta \u00e7al\u0131\u015ft\u0131r\u0131n.<br \/>\n*   <strong>Bellek Sorunlar\u0131:<\/strong> B\u00fcy\u00fck projelerde veya \u00e7ok say\u0131da ba\u011f\u0131ml\u0131l\u0131k oldu\u011funda, derleme s\u0131ras\u0131nda Node.js&#8217;in belle\u011fi yetersiz kalabilir.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Node.js&#8217;e daha fazla bellek ay\u0131rmak i\u00e7in <code>node --max_old_space_size=8192 node_modules\/@angular\/cli\/bin\/ng serve<\/code> gibi bir komut kullanabilirsiniz (8192 MB yerine ihtiyac\u0131n\u0131za g\u00f6re ayarlay\u0131n). Bu komutu <code>package.json<\/code> i\u00e7indeki <code>start<\/code> beti\u011fine ekleyebilirsiniz.<\/p>\n<p>Bu sorun giderme ipu\u00e7lar\u0131, Angular geli\u015ftirme s\u00fcrecinde kar\u015f\u0131la\u015fabilece\u011finiz bir\u00e7ok yayg\u0131n sorunu \u00e7\u00f6zmenize yard\u0131mc\u0131 olacakt\u0131r. Hata mesajlar\u0131n\u0131 dikkatlice okumak ve Google&#8217;da arama yapmak, sorunlar\u0131 \u00e7\u00f6zmenin en etkili yollar\u0131d\u0131r.<\/p>\n<h3>Sonu\u00e7 ve Sonraki Ad\u0131mlar<\/h3>\n<p>Bu kapsaml\u0131 rehber boyunca, Angular CLI&#8217;\u0131n Angular geli\u015ftirme s\u00fcrecindeki vazge\u00e7ilmez rol\u00fcn\u00fc ve sundu\u011fu g\u00fc\u00e7l\u00fc \u00f6zellikleri inceledik. Angular CLI ile s\u0131f\u0131rdan bir proje olu\u015fturmaktan, temel bile\u015fenleri ve servisleri y\u00f6netmeye, uygulamalar\u0131 test etmeye ve \u00fcretime haz\u0131r hale getirmeye kadar her ad\u0131m\u0131 \u00f6\u011frendik. <code>ng new<\/code>, <code>ng serve<\/code>, <code>ng generate<\/code>, <code>ng build<\/code>, <code>ng add<\/code> ve <code>ng update<\/code> gibi temel komutlar\u0131n nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ve Angular&#8217;\u0131n bile\u015fen, mod\u00fcl, servis ve y\u00f6nlendirme gibi temel kavramlar\u0131n\u0131 anlaman\u0131n \u00f6nemini vurgulad\u0131k.<\/p>\n<p>Angular CLI, geli\u015ftiricilere tekrarlayan g\u00f6revleri otomatikle\u015ftirmek, en iyi uygulamalar\u0131 takip etmek ve kod kalitesini art\u0131rmak i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 seti sunar. Bu ara\u00e7, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r, hata oran\u0131n\u0131 d\u00fc\u015f\u00fcr\u00fcr ve \u00f6zellikle b\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalarda tutarl\u0131l\u0131\u011f\u0131 ve s\u00fcrd\u00fcr\u00fclebilirli\u011fi sa\u011flar.<\/p>\n<p>Angular d\u00fcnyas\u0131na att\u0131\u011f\u0131n\u0131z bu ilk ad\u0131mlardan sonra, \u00f6\u011frenmeye devam etmek ve becerilerinizi geli\u015ftirmek i\u00e7in bir\u00e7ok kaynak bulunmaktad\u0131r:<\/p>\n<p>*   <strong>Resmi Angular Dok\u00fcmantasyonu:<\/strong> [angular.io](https:\/\/angular.io\/) adresindeki resmi dok\u00fcmantasyon, Angular&#8217;\u0131 \u00f6\u011frenmek i\u00e7in en g\u00fcvenilir ve g\u00fcncel kaynakt\u0131r. Temel kavramlardan ileri seviye konulara kadar her \u015feyi bulabilirsiniz.<br \/>\n*   <strong>Angular Bloglar\u0131 ve Topluluklar\u0131:<\/strong> Medium, Dev.to gibi platformlardaki Angular geli\u015ftirici bloglar\u0131n\u0131 takip edin. Stack Overflow&#8217;da sorular sorun ve cevaplar\u0131 inceleyin. Reddit&#8217;teki <code>\/r\/Angular<\/code> gibi topluluklara kat\u0131l\u0131n.<br \/>\n*   <strong>\u00c7evrimi\u00e7i Kurslar:<\/strong> Udemy, Coursera, Pluralsight gibi platformlarda Angular i\u00e7in bir\u00e7ok kaliteli \u00e7evrimi\u00e7i kurs bulunmaktad\u0131r. G\u00f6rsel \u00f6\u011frenmeyi tercih ediyorsan\u0131z bu kurslar \u00e7ok faydal\u0131 olabilir.<br \/>\n<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber\nGiri\u015f\nWeb geli\u015ftirme d\u00fcnyas\u0131, s\u00fcrekli de\u011fi\u015fen teknolojiler ve \u00e7er\u00e7evelerle dolu","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1488],"tags":[],"class_list":{"0":"post-30952","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-angular","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Angular CLI ile Angular&#039;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Angular CLI ile Angular&#039;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Angular CLI ile Angular&#039;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber Giri\u015f Web geli\u015ftirme d\u00fcnyas\u0131, s\u00fcrekli de\u011fi\u015fen teknolojiler ve \u00e7er\u00e7evelerle dolu\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T20:42:01+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"30 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-10-03T20:42:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\"},\"wordCount\":5029,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Angular\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\",\"name\":\"Angular CLI ile Angular'a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-03T20:42:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Angular CLI ile Angular'a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Angular CLI ile Angular'a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber","og_description":"Angular CLI ile Angular'a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber Giri\u015f Web geli\u015ftirme d\u00fcnyas\u0131, s\u00fcrekli de\u011fi\u015fen teknolojiler ve \u00e7er\u00e7evelerle dolu","og_url":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-03T20:42:01+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"30 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber","datePublished":"2025-10-03T20:42:01+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/"},"wordCount":5029,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Angular"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/","name":"Angular CLI ile Angular'a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-03T20:42:01+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/angular-cli-ile-angulara-baslangic-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Angular CLI ile Angular&#8217;a Ba\u015flang\u0131\u00e7: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30952","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30952"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30952\/revisions"}],"predecessor-version":[{"id":30953,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30952\/revisions\/30953"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30952"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30952"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}