Yanıtlar:
--Module parametresini kullanarak modülü belirtin. Örneğin, ana modül app.module.ts ise, şunu çalıştırın:
ng g c new-component --module app
Veya başka bir dizindeyseniz
ng g c component-name --module ../
Bunu dene: Benim için çalışıyor
ng generate component componentName --module=app.module
Bunun nedeni, neslin bileşeninizi bir modüle eklemeye çalışması, yani bu satırı eklemeye çalışmasıdır.
import { MyComponent } from './Components/my-component/my-component.component';
ancak 2 modül buldu.
Belirtildiği gibi burada , onlar sürece sadece 1 modül, sen ince olması klasör kök src / app, bu yüzden sadece bir duruma düzelttim bir alt klasöre ikinciller modüllerini taşıyın.
Aksi takdirde kullanmak zorundasınız --module
modulesalt klasöre taşıdı ve şimdi her şey yolunda.
Benim için çalışıyor
ng g component component-name --skip-import
Zisha'nın cevabı için sadece küçük bir güncelleme.
Projemde tüm modüller "modüller" adlı bir klasöre yerleştirildi ve tüm bileşenler "src / app" altındaki "bileşenler" klasörüne yerleştirildi
belirli bir yol altında bir bileşen oluşturmak için aşağıdaki sözdizimini kullandım:
gc components_path / bileşen_adı - modül modülleri_yolu / modül_adı
misal :
ng gc bileşenleri / giriş - modül modülleri / uygulama
Açısal CLI: 6.0.8
Düğüm: 10.4.0
İşletim Sistemi: linux x64
Açısal: 6.0.4
Yönlendirme modülü ayrı NgModule'ye (örn. Manager- routing.module.ts) harici olarak yerleştirilmiş bir özellik modülü (örn. "/ Manager" alt klasörü içinde manager.module.ts ) olması durumunda hata mesajı:
Birden fazla modül eşleşiyor. Bileşeni en yakın modüle almayı atlamak için atla-içe aktar seçeneğini kullanın.
görüntülenmez ve bileşen düzgün bir şekilde oluşturulur ve manager.module.ts modülüne eklenir .
AMA adlandırma kuralını DİKKATLİ OLUN ! yönlendirme modülünün adı "yönlendirme" ile bitmelidir !
Yönlendirme modülüne örneğin manager-router.module.ts gibi bir ad verilirse , CLI hata mesajından şikayet eder ve bileşen içe aktarımını otomatik olarak eklemek için --module seçeneği sağlamanızı bekler:
ng generate component some-name --module=manager.module.ts
veya
ng generate component some-name --skip-import
bileşenin içe aktarılmasını manuel olarak eklemeyi tercih ederseniz
-Hile yaptı! Bunun lib-name.routing.module.tsyerine vardı lib-name-routing.module.ts.
Bu sorunu çözmenin iki yolu vardır.
1) Atla (komutta --skip-import komutunu kullanarak) varsayılan içe aktarma ve oluşturma bileşeni ve bileşen oluşturulduktan sonra kullanmak istediğiniz yere manuel olarak aktarın.
ng generate component my-component --skip-import
2) Modül adını açıkça alınmasını istediğiniz yere sağlayın
ng generate component my-component --module=my-module.module
Uygulama veya lib'de birden fazla iç içe modül olduğunda
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
Açısal CLI
ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts
NRWL NX Açısal CLI
ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts
Sonuç
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
Bir klasör altında yeni bir bileşen oluşturmaya çalışırken hata alıyordum.
hata: Birden fazla modül eşleşiyor. Bileşeni en yakın modüle almayı atlamak için atla-içe aktar seçeneğini kullanın.
Aşağıdaki komutu kullandım ve yeni bileşen bir klasör altında başarıyla oluşturuldu.
ng g c folderName/my_newComponent ---module ../app
Projem Visual Studio Community 2017 kullanılarak oluşturuldu ve 3 ayrı modül oluşturuyor: app.browser.module, app.server.module ve app.shared.module
Bileşenlerimi oluşturmak için yukarıdaki cevapları kontrol ettim ve modülümü app.shared.module olarak buldum.
Ben de koşuyorum:
ng g c componentName --module=app.shared.module
Uygulama klasörü altında birden fazla modül olduğunda, aşağıdaki komutla bir bileşen oluşturmak başarısız olur:
ng generate component New-Component-Name
Nedeni açısal CLI'nın birden fazla modülü tespit etmesidir ve hangi modülün bileşeni ekleyeceğini bilmez. Bu nedenle, hangi modül bileşeninin ekleneceğini açıkça belirtmeniz gerekir:
ng generate component New-Component-Name --module=ModuleName
bileşen başlığı denemek - modül uygulaması benim için çalışıyor
app.routing.module.tsnedenle hata
Açısal CLI: 8.3.1
module.tsbir modülün içinde birden fazla dosyanız varsa, hangi modül dosyası için bileşen oluşturduğunuzu belirtmeniz gerekir.
ng g c modulefolder/componentname --module=modulename.module
örneğin ben içindeki shared.module.tsve material.module.tsbu gibi paylaşılan modül klasörü var
shared
> shared.module.ts
> material.module.ts
ve ben sidebarbileşen oluşturmak istiyorum shared.module.ts
sonra ben aşağıdaki komutu çalıştıracağım
ng g c shared/sidebar --module=shared.module
bileşeni dışa aktarmak istiyorsanız aşağıdaki komutu çalıştırın
ng g c shared/sidebar --module=shared.module --export
Açısal CLI: 8.3.4 Düğüm: 10.16.3 Angualr: 4.2.5
Kullandığım "dotnet yeni açısal" projesini oluşturmak için komut ve basit bir yöntem olmasına karşın (app klasöründe 3 farklı modülleri üretti yeni proje adını ng sadece tek bir modül oluşturur.
projenizdeki modülleri görün ve istediğiniz modüle karar verin - ardından adı belirtin
ng g c componentName --module=[name-of-your-module]
Modüller hakkında daha fazla bilgiyi buradan edinebilirsiniz: https://angular.io/guide/architecture-modules
Benim durumumda, çevre yoluma kayıtlı değil gibi görünüyor. Ng komutlarını çalıştırmak için npm run komutunu kullanıyorum. Npm çalıştırma spesifikasyonuna göre ekstra ihtiyacınız olan argümanları aktarabileceğinizi unutmayın.
Örnek: npm çalışma ng gc bileşenleri / çizelgeleme - --module = app
Veya: npm çalışma ng gc bileşenleri / çizelgeleme - - atlama-alma
Ne zaman bu angular.jsonyapılandırma vardı bu uyarı vardı :
"prefix": "app_ng"
"app"Tüm değiştirildi zaman gayet iyi çalıştı.
Sadece benim gibi herkes için bu konuda başka bir bilgi eklemek için sadece tek bir uygulama var.
Uygulamamı ana app.module.ts ile ayarladım ve yönlendirme modülü ile ana uygulamanın altındaki kendi klasöründe yönlendirme yaptım. Ben daha iyi organize edilmesi gereken birkaç şey vardı çünkü geçti ve bazı 'temizlik' yaptı. Yaptığım bir şey, routing.module.ts dosyasını kök klasöre taşımaktı; klasördeki tek dosya olduğu için kendi klasörüne ihtiyacı olmadığını düşündüm.
Bu ilk başta iyi çalıştı ama bir dahaki sefere yeni bir bileşen (bir süre sonra WebStorm IDE aracılığıyla) oluşturmaya çalıştım bu mesajla başarısız oldu. Bunu okuduktan sonra yönlendirme modülünü ayrı bir klasöre geri koymayı denedim ve tekrar çalıştı.
Bu nedenle, diğerlerine karşı uyarı almayı unutmayın, yönlendirme modülünü kök klasörünüze taşımayın! Ben de bununla başa çıkmak için başka yollar vardır eminim ama şimdilik kendi klasöründe ve daha önce olduğu gibi IDE jeneratör kullanarak memnunum.
Bir hack olarak, adımların altında, benim için çalıştı.
1) * .module.ts dosyalarını src / app uygulamasından projenin dışına taşıyın.
2) bileşen oluşturmak için komut yürütmek [ng g c component-name]
3) * .module.ts dosyalarını src / app / dizinine geri taşıyın
ng g c admin/manageUsers ---module ../app