Jawaban:
Tentukan modul menggunakan parameter --mule. Misalnya, jika modul utama adalah app.module.ts, jalankan ini:
ng g c new-component --module app
Atau jika Anda berada di direktori lain, maka
ng g c component-name --module ../
Coba ini: Ini bekerja untuk saya
ng generate component componentName --module=app.module
Ini disebabkan karena generasi mencoba menambahkan komponen Anda ke modul, yaitu menambahkan baris ini
import { MyComponent } from './Components/my-component/my-component.component';
tetapi ditemukan 2 modul.
Seperti yang dinyatakan di sini , mereka memperbaikinya pada situasi di mana selama di root src / app folder Anda hanya memiliki 1 modul, Anda baik-baik saja, jadi hanya memindahkan modul sekunder ke sub-folder.
Kalau tidak, Anda harus menggunakan --module
modules
subfolder, dan semuanya baik-baik saja sekarang.
Ini bekerja untuk saya
ng g component component-name --skip-import
Hanya pembaruan kecil untuk jawaban Zisha.
Dalam proyek saya semua modul ditempatkan di folder yang disebut "modul" dan semua komponen ditempatkan di folder "komponen" di bawah "src / app"
jadi untuk membuat komponen di bawah jalur tertentu, saya menggunakan sintaks berikut:
ng gc components_path / component_name --module modules_path / module_name
contoh:
ng gc components / login --module modules / app
CLI Angular: 6.0.8
Node: 10.4.0
OS: linux x64
Angular: 6.0.4
Dalam hal ada modul fitur (misalnya manager.module.ts dalam misalnya "/ manager" sub-folder) dengan modul routing yang externalized ke NgModule terpisah (misalnya manajer-routing.module.ts ) pesan kesalahan:
Lebih dari satu modul cocok. Gunakan opsi lewati-impor untuk melewati impor komponen ke modul terdekat.
tidak muncul dan komponen dihasilkan dan ditambahkan dengan benar ke modul manager.module.ts .
TETAPI HATI - HATI penamaan! nama modul routing harus diakhiri dengan " -routing "!
Jika modul perutean diberi nama seperti mis. Manager-router.module.ts , CLI akan mengeluh dengan pesan kesalahan dan mengharapkan Anda untuk memberikan opsi --module untuk secara otomatis menambahkan impor komponen:
ng generate component some-name --module=manager.module.ts
atau
ng generate component some-name --skip-import
jika Anda lebih suka menambahkan impor komponen secara manual
-
berhasil! Saya lib-name.routing.module.ts
bukannya lib-name-routing.module.ts
.
Ada dua cara untuk mengatasi masalah ini.
1) Lewati (menggunakan --skip-import in command) impor default dan buat komponen dan begitu komponen dibuat impor secara manual di mana pun Anda ingin menggunakannya.
ng generate component my-component --skip-import
2) Berikan nama modul secara eksplisit di tempat Anda ingin diimpor
ng generate component my-component --module=my-module.module
Ketika aplikasi atau lib memiliki beberapa modul bersarang
myApp
> src
> app
app.module.ts
> routes
> login
> auth
login.module.ts
CLI sudut
ng g component routes/login/auth/my-auth --module=routes/login/login.module.ts
NRWL NX Angular CLI
ng g component routes/login/auth/my-auth --project=myApp --module=routes/login/login.module.ts
Hasil
myApp
> src
> app
app.module.ts
> routes
> login
> auth
> my-auth
my-auth.component.ts etc...
login.module.ts
Saya mendapatkan kesalahan di bawah ini ketika mencoba membuat komponen baru di bawah folder.
kesalahan: Lebih dari satu modul cocok. Gunakan opsi lewati-impor untuk melewati impor komponen ke modul terdekat.
Saya telah menggunakan perintah di bawah ini dan komponen baru berhasil dibuat di bawah folder.
ng g c folderName/my_newComponent ---module ../app
Proyek saya dibuat menggunakan Visual Studio Community 2017 dan menciptakan 3 modul terpisah: app.browser.module, app.server.module dan app.share.module
Untuk membuat komponen, saya memeriksa jawaban di atas dan menemukan modul saya menjadi app.share.module.
Jadi, saya jalankan:
ng g c componentName --module=app.shared.module
Ketika ada lebih dari satu modul di bawah folder aplikasi, menghasilkan komponen dengan perintah di bawah ini akan gagal:
ng generate component New-Component-Name
Alasannya adalah sudut CLI mendeteksi beberapa modul, dan tidak tahu di mana modul untuk menambahkan komponen. Jadi, Anda perlu menyebutkan secara eksplisit komponen modul mana yang akan ditambahkan:
ng generate component New-Component-Name --module=ModuleName
coba ng g tajuk komponen --module app berfungsi untuk saya
app.routing.module.ts
karenanya kesalahan
CLI sudut: 8.3.1
ketika Anda memiliki banyak module.ts
file di dalam modul, Anda perlu menentukan file modul mana yang Anda hasilkan komponen.
ng g c modulefolder/componentname --module=modulename.module
untuk contoh saya telah berbagi folder modul di dalamnya saya punya shared.module.ts
dan material.module.ts
seperti ini
shared
> shared.module.ts
> material.module.ts
dan saya ingin menghasilkan sidebar
komponen untuk shared.module.ts
kemudian saya akan menjalankan perintah berikut
ng g c shared/sidebar --module=shared.module
jika Anda ingin mengekspor komponen kemudian jalankan perintah berikut
ng g c shared/sidebar --module=shared.module --export
CLI Angular: 8.3.4 Node: 10.16.3 Angualr: 4.2.5
Saya menggunakan perintah "dotnet new angular" untuk menghasilkan proyek, dan telah menghasilkan 3 modul yang berbeda di folder aplikasi (Meskipun tes sederhana dengan nama proyek baru hanya menghasilkan satu modul.
lihat modul dalam proyek Anda dan putuskan modul yang Anda inginkan - kemudian tentukan namanya
ng g c componentName --module=[name-of-your-module]
Anda dapat membaca lebih lanjut tentang modul di sini: https://angular.io/guide/architecture-modules
Dalam kasus saya, sepertinya ng tidak terdaftar ke jalur lingkungan saya. Saya telah menggunakan perintah jalankan npm untuk menjalankan perintah ng. Berhati-hatilah untuk meloloskan argumen, Anda memerlukan ekstra - sesuai spesifikasi npm run.
Contoh: npm run ng gc komponen / penjadwalan - --module = app
Atau: npm menjalankan komponen gc / penjadwalan - --skip-import
Saya mendapat peringatan ini saat angular.json
mengonfigurasi ini:
"prefix": "app_ng"
Ketika diubah ke "app"
semua bekerja dengan baik.
Hanya untuk menambahkan informasi lain untuk ini bagi orang seperti saya yang kebetulan hanya memiliki satu aplikasi.
Saya mengatur aplikasi saya dengan app.module.ts utama dan saya melakukan routing dengan modul routing di foldernya sendiri di bawah aplikasi utama. Saya melewati dan melakukan beberapa 'pembersihan' karena saya memiliki beberapa hal lain yang perlu diorganisir lebih baik. Satu hal yang saya lakukan adalah memindahkan routing.module.ts ke folder root; karena itu adalah satu-satunya file dalam folder yang saya pikir tidak perlu folder itu sendiri.
Ini bekerja dengan baik pada awalnya tetapi kali berikutnya saya mencoba untuk menghasilkan komponen baru (beberapa waktu kemudian, melalui IDE WebStorm) gagal dengan pesan ini. Setelah membaca ini saya mencoba meletakkan modul routing kembali ke folder terpisah dan berfungsi lagi.
Jadi perhatikan peringatan untuk orang lain, jangan pindahkan modul perutean ke folder root Anda! Saya yakin ada cara lain untuk menangani ini juga, tetapi saya senang dengan itu di folder sendiri untuk saat ini dan menggunakan generator IDE seperti sebelumnya.
Sebagai peretasan, langkah-langkah di bawah ini, berhasil untuk saya.
1) Pindahkan * .module.ts file dari src / app ke lokasi di luar proyek.
2) Jalankan perintah untuk membuat komponen [ng g c component-name]
3) Pindahkan kembali file * .module.ts ke src / app /
ng g c admin/manageUsers ---module ../app