Uygulamaları bir Angular çalışma alanı bağlamında geliştirirsiniz. Bir çalışma alanı, bir veya daha fazla proje için dosyaları içerir. Bir proje, bir uygulamayı veya paylaşılabilir bir kütüphaneyi oluşturan dosyalar kümesidir.
Angular CLI ng new komutu bir çalışma alanı oluşturur.
ng new my-project
Bu komutu çalıştırdığınızda, CLI gerekli Angular npm paketlerini ve diğer bağımlılıkları yeni bir çalışma alanına kurar ve my-project adında bir kök düzey uygulama oluşturur.
Varsayılan olarak, ng new çalışma alanının kök düzeyinde bir başlangıç iskelet uygulaması ve uçtan uca testlerini oluşturur.
İskelet, çalıştırmaya hazır ve değiştirmesi kolay basit bir karşılama uygulaması içindir.
Kök düzey uygulama çalışma alanıyla aynı ada sahiptir ve kaynak dosyaları çalışma alanının src/ alt klasöründe bulunur.
Bu varsayılan davranış, her uygulamanın kendi çalışma alanında bulunduğu tipik bir "multi-repo" geliştirme stili için uygundur.
Başlangıç ve orta düzey kullanıcıların her uygulama için ayrı bir çalışma alanı oluşturmak üzere ng new kullanmaları teşvik edilir.
Angular ayrıca birden fazla projeli çalışma alanlarını da destekler. Bu tür bir geliştirme ortamı, paylaşılabilir kütüphaneler geliştiren ileri düzey kullanıcılar ve tüm Angular projeleri için tek bir depo ve genel yapılandırma kullanan "monorepo" geliştirme stilini benimseyen kuruluşlar için uygundur.
Bir monorepo çalışma alanı kurmak için kök uygulama oluşturmayı atlamalısınız. Aşağıdaki Çoklu proje çalışma alanı kurulumu bölümüne bakın.
Çalışma alanı yapılandırma dosyaları
Bir çalışma alanındaki tüm projeler bir yapılandırmayı paylaşır. Çalışma alanının en üst düzeyi, çalışma alanı genelinde yapılandırma dosyalarını, kök düzey uygulama için yapılandırma dosyalarını ve kök düzey uygulama kaynak ve test dosyaları için alt klasörleri içerir.
| Çalışma alanı yapılandırma dosyaları | Amaç |
|---|---|
.editorconfig |
Kod editörleri için yapılandırma. EditorConfig sayfasına bakın. |
.gitignore |
Git'in yok sayması gereken, kasıtlı olarak izlenmeyen dosyaları belirtir. |
README.md |
Çalışma alanı için dokümantasyon. |
angular.json |
Çalışma alanındaki tüm projeler için CLI yapılandırması; her projenin nasıl derleneceği, sunulacağı ve test edileceğine ilişkin yapılandırma seçenekleri dahil. Ayrıntılar için Angular Çalışma Alanı Yapılandırması bölümüne bakın. |
package.json |
Çalışma alanındaki tüm projeler için kullanılabilen npm paket bağımlılıklarını yapılandırır. Bu dosyanın belirli biçimi ve içeriği için npm dokümantasyonuna bakın. |
package-lock.json |
npm istemcisi tarafından node_modules içine kurulan tüm paketler için sürüm bilgisi sağlar. Ayrıntılar için npm dokümantasyonuna bakın. |
src/ |
Kök düzey uygulama projesi için kaynak dosyaları. |
public/ |
Geliştirme sunucusu tarafından statik dosyalar olarak sunulacak ve uygulamanızı derlerken olduğu gibi kopyalanacak görüntü ve diğer varlık dosyalarını içerir. |
node_modules/ |
Tüm çalışma alanı için kurulmuş npm paketleri. Çalışma alanı genelindeki node_modules bağımlılıkları tüm projeler tarafından görülebilir. |
tsconfig.json |
Çalışma alanındaki projeler için temel TypeScript yapılandırması. Diğer tüm yapılandırma dosyaları bu temel dosyadan devralır. Daha fazla bilgi için ilgili TypeScript dokümantasyonuna bakın. |
Uygulama proje dosyaları
Varsayılan olarak, CLI komutu ng new my-app "my-app" adında bir çalışma alanı klasörü oluşturur ve çalışma alanının en üst düzeyinde bir src/ klasöründe yeni bir uygulama iskeleti oluşturur.
Yeni oluşturulan uygulama, bir kök bileşen ve şablonla birlikte bir kök modül için kaynak dosyaları içerir.
Çalışma alanı dosya yapısı oluşturulduktan sonra, uygulamaya işlevsellik ve veri eklemek için komut satırında ng generate komutunu kullanabilirsiniz.
Bu başlangıç kök düzey uygulaması, CLI komutları için varsayılan uygulamadır (ek uygulamalar oluşturduktan sonra varsayılanı değiştirmediğiniz sürece).
Tek uygulamalı bir çalışma alanı için, çalışma alanının src alt klasörü kök uygulama için kaynak dosyalarını (uygulama mantığı, veri ve varlıklar) içerir.
Çoklu proje çalışma alanı için, projects klasöründeki ek projeler aynı yapıya sahip bir project-name/src/ alt klasörü içerir.
Uygulama kaynak dosyaları
src/ dizininin en üst düzeyindeki dosyalar uygulamanızın çalışmasını destekler.
Alt klasörler uygulama kaynağını ve uygulamaya özgü yapılandırmayı içerir.
| Uygulama destek dosyaları | Amaç |
|---|---|
app/ |
Uygulama mantığınızın ve verilerinizin tanımlandığı bileşen dosyalarını içerir. Ayrıntılar için aşağıya bakın. |
favicon.ico |
Yer işareti çubuğunda bu uygulama için kullanılacak bir simge. |
index.html |
Birisi sitenizi ziyaret ettiğinde sunulan ana HTML sayfası. CLI, uygulamanızı derlerken tüm JavaScript ve CSS dosyalarını otomatik olarak ekler, bu nedenle genellikle burada manuel olarak <script> veya <link> etiketleri eklemeniz gerekmez. |
main.ts |
Uygulamanızın ana giriş noktası. |
styles.css |
Tüm uygulamaya uygulanan genel CSS stilleri. |
src klasörünün içinde, app klasörü projenizin mantığını ve verilerini içerir.
Angular bileşenleri, şablonları ve stilleri buraya yerleştirilir.
src/app/ dosyaları |
Amaç |
|---|---|
app.config.ts |
Angular'a uygulamanın nasıl birleştirileceğini söyleyen uygulama yapılandırmasını tanımlar. Uygulamaya daha fazla sağlayıcı ekledikçe, burada bildirilmeleri gerekir. Yalnızca --standalone seçeneği kullanıldığında oluşturulur. |
app.component.ts |
Uygulamanın AppComponent adlı kök bileşenini tanımlar. Bu kök bileşenle ilişkili görünüm, uygulamanıza bileşenler ve servisler ekledikçe görünüm hiyerarşisinin kökü olur. |
app.component.html |
AppComponent ile ilişkili HTML şablonunu tanımlar. |
app.component.css |
AppComponent için CSS stil sayfasını tanımlar. |
app.component.spec.ts |
AppComponent için bir birim testi tanımlar. |
app.module.ts |
Angular'a uygulamanın nasıl birleştirileceğini söyleyen AppModule adlı kök modülü tanımlar. Başlangıçta yalnızca AppComponent'i bildirir. Uygulamaya daha fazla bileşen ekledikçe, burada bildirilmeleri gerekir.Yalnızca --standalone false seçeneği kullanıldığında oluşturulur. |
app.routes.ts |
Uygulamanın yönlendirme yapılandırmasını tanımlar. |
Uygulama yapılandırma dosyaları
Kök uygulama için uygulamaya özgü yapılandırma dosyaları çalışma alanı kök düzeyinde bulunur.
Çoklu proje çalışma alanı için, projeye özgü yapılandırma dosyaları projects/project-name/ altındaki proje kökünde bulunur.
Projeye özgü TypeScript yapılandırma dosyaları, çalışma alanı genelindeki tsconfig.json'dan devralır.
| Uygulamaya özgü yapılandırma dosyaları | Amaç |
|---|---|
tsconfig.app.json |
Angular derleyici seçenekleri dahil, uygulamaya özgü TypeScript yapılandırması. |
tsconfig.spec.json |
Uygulama testleri için TypeScript yapılandırması. |
Çoklu projeler
Çoklu proje çalışma alanı, birden fazla Angular projesi için tek bir depo ve genel yapılandırma kullanan bir kuruluş için uygundur ("monorepo" modeli). Çoklu proje çalışma alanı ayrıca kütüphane geliştirmeyi de destekler.
Çoklu proje çalışma alanı kurulumu
Çalışma alanında birden fazla proje bulundurmayı planlıyorsanız, çalışma alanını oluştururken ilk uygulama oluşturmayı atlayabilir ve çalışma alanına benzersiz bir ad verebilirsiniz. Aşağıdaki komut, tüm çalışma alanı genelinde yapılandırma dosyalarıyla birlikte ancak kök düzey uygulama olmadan bir çalışma alanı oluşturur.
ng new my-workspace --no-create-application
Daha sonra çalışma alanı içinde benzersiz adlara sahip uygulamalar ve kütüphaneler oluşturabilirsiniz.
cd my-workspace
ng generate application my-app
ng generate library my-lib
Çoklu proje dosya yapısı
İlk açıkça oluşturulan uygulama, çalışma alanındaki diğer tüm projelerle birlikte projects klasörüne gider.
Yeni oluşturulan kütüphaneler de projects altına eklenir.
Projeleri bu şekilde oluşturduğunuzda, çalışma alanının dosya yapısı çalışma alanı yapılandırma dosyası, angular.json yapısıyla tamamen tutarlıdır.
my-workspace/
├── … (workspace-wide configuration files)
└── projects/ (applications and libraries)
├── my-app/ (an explicitly generated application)
│ └── … (application-specific code and configuration)
└── my-lib/ (a generated library)
└── … (library-specific code and configuration)
Kütüphane proje dosyaları
CLI kullanarak bir kütüphane oluşturduğunuzda (ng generate library my-lib gibi bir komutla), oluşturulan dosyalar çalışma alanının projects/ klasörüne gider.
Kendi kütüphanelerinizi oluşturma hakkında daha fazla bilgi için Kütüphane Oluşturma bölümüne bakın.
Bir uygulamanın aksine, bir kütüphanenin kendi package.json yapılandırma dosyası vardır.
projects/ klasörü altında, my-lib klasörü kütüphane kodunuzu içerir.
| Kütüphane kaynak dosyaları | Amaç |
|---|---|
src/lib |
Kütüphane projenizin mantığını ve verilerini içerir. Bir uygulama projesi gibi, bir kütüphane projesi de bileşenler, servisler, modüller, direktifler ve pipe'lar içerebilir. |
src/public-api.ts |
Kütüphanenizden dışa aktarılan tüm dosyaları belirtir. |
ng-package.json |
Kütüphanenizi derlemek için ng-packagr tarafından kullanılan yapılandırma dosyası. |
package.json |
Bu kütüphane için gerekli olan npm paket bağımlılıklarını yapılandırır. |
tsconfig.lib.json |
Angular derleyici seçenekleri dahil, kütüphaneye özgü TypeScript Yapılandırması. |
tsconfig.lib.prod.json |
Kütüphane üretim modunda derlenirken kullanılan kütüphaneye özgü TypeScript Yapılandırması. |
tsconfig.spec.json |
Kütüphanenin birim testleri için TypeScript Yapılandırması. |