วิธีสร้างส่วนประกอบใหม่ใน Angular 4 โดยใช้ CLI


96

ในเชิงมุม 2 ฉันใช้

ng g c componentname

แต่มันไม่ได้รับการสนับสนุนใน Angular 4 ดังนั้นฉันจึงสร้างมันขึ้นมาเอง แต่มันแสดงข้อผิดพลาดว่าไม่ใช่โมดูล


6
ng generate component componentname, ตามเอกสาร

1
คุณต้องนำเข้าส่วนประกอบที่สร้างขึ้นเองในไฟล์
module.ts

ใน Angular 7 ก็ใช้งานได้เช่นกัน ng g c <componentname>หรือng generate component <Name>
Chinmoy

คุณสามารถเพิ่มส่วนประกอบตามแผนผังและตัวเลือกตามเอกสาร
Savaj Patel

คำตอบ:


11

การสร้างและให้บริการโครงการ Angular ผ่านเซิร์ฟเวอร์การพัฒนา -

ก่อนอื่นไปที่ Project Directory ของคุณและพิมพ์ด้านล่าง -

ng new my-app
cd my-app
ng g component User
ng serve

ที่นี่“ D: \ Angular \ my-app> ” คือแอปพลิเคชัน Angular Project Directory ของฉันและ“ ผู้ใช้ ” คือชื่อของส่วนประกอบ

คอมมอนส์ดูเหมือน -

D:\Angular\my-app>ng g component User
  create src/app/user/user.component.html (23 bytes)
  create src/app/user/user.component.spec.ts (614 bytes)
  create src/app/user/user.component.ts (261 bytes)
  create src/app/user/user.component.css (0 bytes)
  update src/app/app.module.ts (586 bytes)

147

ใน Angular4 สิ่งนี้จะทำงานเหมือนกัน หากคุณได้รับข้อผิดพลาดฉันคิดว่าปัญหาของคุณอยู่ที่อื่น

ในประเภทพรอมต์คำสั่ง

ng สร้างคอมโพเนนต์ YOURCOMPONENTNAME

คำสั่งที่มี shorthands แม้สำหรับนี้generateสามารถใช้เป็นgและcomponentเป็นc:

ng gc YOURCOMPONENTNAME

คุณสามารถใช้ng --help, ng g --helpหรือng g c --helpสำหรับเอกสาร

แน่นอนเปลี่ยนชื่อ YOURCOMPONENTNAME เป็นชื่อที่คุณต้องการใช้

เอกสาร: angular-cli จะเพิ่มการอ้างอิงส่วนประกอบคำสั่งและท่อโดยอัตโนมัติใน app.module.ts

อัปเดต: ยังคงใช้งานได้ใน Angular เวอร์ชัน 8


1
ฉันได้รับข้อผิดพลาดนี้ ----------- การติดตั้งส่วนประกอบข้อผิดพลาดในการค้นหาโมดูลสำหรับการประกาศ SilentError: ไม่พบไฟล์โมดูล
surbhiGoel

1
ฉันสงสัยว่ามีคำสั่งใดที่สามารถลบส่วนประกอบที่สร้างขึ้นรวมถึงโมดูลแอปอ้างอิงได้หรือไม่
panky sharma

2
@pankysharma ไม่มีคำสั่งใน Angular CLI เพื่อลบส่วนประกอบ แต่ถ้าคุณต้องการสร้างส่วนประกอบใหม่ด้วยตัวเลือกที่แตกต่างกัน คุณสามารถใช้ตัวเลือก--force(ชวเลข: -f) เพื่อลบล้างไฟล์
Mike Bovenlander

"พนักงาน gc" ทำงานให้ฉัน ฉันใช้ '$' ก่อน 'ng' เหมือน '$ ng gc พนักงาน' ซึ่งสร้างปัญหาในกรณีนี้
Raj Chaurasia

หากคุณไม่ต้องการไฟล์ทดสอบ (.spec.ts) สำหรับคอมโพเนนต์ใหม่ของคุณให้เพิ่มอาร์กิวเมนต์ --skipTests ในคำสั่งของคุณ
Chirag K

27

1) ไปที่ Project Directory ก่อน

2) จากนั้นเรียกใช้คำสั่งด้านล่างในเทอร์มินัล

ng generate component componentname

หรือ

ng g component componentname

3) หลังจากนั้นคุณจะเห็นผลลัพธ์เช่นนี้

create src/app/test/componentname.component.css (0 bytes)
create src/app/test/componentname.component.html (23 bytes)
create src/app/test/componentname.component.spec.ts (614 bytes)
create src/app/test/componentname.component.ts (261 bytes)
update src/app/app.module.ts (1087 bytes)

14

หากคุณต้องการสร้างองค์ประกอบใหม่โดยไม่มี.specไฟล์คุณสามารถใช้ไฟล์

ng g c component-name --spec false

คุณสามารถค้นหาตัวเลือกเหล่านี้ได้โดยใช้ ng g c --help


11
ng g component componentname

สร้างส่วนประกอบและเพิ่มส่วนประกอบในการประกาศโมดูล

เมื่อสร้างส่วนประกอบด้วยตนเองคุณควรเพิ่มองค์ประกอบในการประกาศโมดูลดังนี้:

@NgModule({
  imports: [
    yourCommaSeparatedModules
    ],
  declarations: [
    yourCommaSeparatedComponents
  ]
})
export class yourModule { }


6

สำหรับการสร้างส่วนประกอบภายใต้โฟลเดอร์บางโฟลเดอร์

ng g c employee/create-employee --skipTests=false --flat=true

บรรทัดนี้จะสร้างชื่อโฟลเดอร์ "พนักงาน" ด้านล่างสร้างคอมโพเนนต์ "สร้างพนักงาน"

โดยไม่ต้องสร้างโฟลเดอร์ใด ๆ

ng g c create-employee --skipTests=false --flat=true


3

ng สร้าง component component_name ไม่ทำงานในกรณีของฉันเพราะแทนที่จะใช้ 'app' เป็นชื่อโฟลเดอร์โครงการฉันเปลี่ยนชื่อเป็นอย่างอื่น ฉันเปลี่ยนเป็นแอปอีกครั้ง ตอนนี้มันทำงานได้ดี


3
ng g c COMPONENTNAME

คำสั่งนี้ใช้สำหรับการสร้างส่วนประกอบโดยใช้เทอร์มินัลที่ฉันใช้ใน angular2

g สำหรับสร้าง c สำหรับส่วนประกอบ


2

ในกรณีของฉันฉันมี.angular-cli.jsonไฟล์อื่นอยู่ในsrcโฟลเดอร์ของฉัน การลบออกช่วยแก้ปัญหาได้ หวังว่าจะช่วยได้

angular 4.1.1 angular-cli 1.0.1


2
ng g component component name

ก่อนที่คุณจะพิมพ์คำชมเชยนี้คุณจะอยู่ในเส้นทางคำสั่งโครงการ


2

ng gc - ดรายรันเพื่อให้คุณสามารถเห็นสิ่งที่คุณกำลังจะทำก่อนที่จะทำจริงจะช่วยประหยัดความยุ่งยากได้ เพียงแค่แสดงให้คุณเห็นว่ากำลังจะทำอะไรโดยไม่ต้องทำจริง


2

คุณควรอยู่ในsrc/appโฟลเดอร์ของโครงการเชิงมุมของคุณในบรรทัดคำสั่ง ตัวอย่างเช่น:

D:\angular2-cli\first-app\src\app> ng generate component test

จากนั้นมันจะสร้างส่วนประกอบของคุณ


1

คุณอัปเดต angular-cli เป็นเวอร์ชันล่าสุดหรือไม่ หรือคุณลองอัปเดตโหนดหรือ npm หรือ typescript ปัญหานี้เกิดขึ้นเนื่องจากเวอร์ชันต่างๆเช่น angular / typescript / node หากคุณกำลังอัปเดต cli ให้ใช้ลิงค์นี้ที่นี่ https://github.com/angular/angular-cli/wiki/stories-1.0-update


1

ไปที่โฟลเดอร์โครงการเชิงมุมของคุณและเปิดคำสั่งพรอมต์ประเภท "ส่วนหัวขององค์ประกอบ ng g" โดยที่ส่วนหัวเป็นส่วนประกอบใหม่ที่คุณต้องการสร้างตามค่าเริ่มต้นส่วนประกอบส่วนหัวจะถูกสร้างขึ้นภายในส่วนประกอบของแอปคุณสามารถสร้างส่วนประกอบภายใน a ส่วนประกอบตัวอย่างเช่นหากคุณต้องการสร้างส่วนประกอบภายในส่วนหัวที่เราทำไว้ด้านบนให้พิมพ์ "ng g component header / menu" สิ่งนี้จะสร้างส่วนประกอบเมนูภายในส่วนประกอบส่วนหัว


1

ng g c COMPONENTNAME ควรใช้งานได้หากคุณได้รับโมดูลไม่พบข้อยกเว้นให้ลองทำสิ่งเหล่านี้ -

  1. ตรวจสอบไดเรกทอรีโครงการของคุณ
  2. หากคุณใช้รหัส Visual Studio ให้โหลดซ้ำหรือเปิดโครงการของคุณอีกครั้งในนั้น

1

ไปที่ตำแหน่งโครงการในโฟลเดอร์ที่ระบุ

C:\Angular6\sample>

คุณสามารถพิมพ์คำสั่งได้ที่นี่

C:\Angular6\sample>ng g c users

ในที่นี้ g หมายถึงสร้าง c หมายถึงส่วนประกอบผู้ใช้คือชื่อส่วนประกอบ

มันจะสร้างไฟล์ 4 ไฟล์

users.component.html,
users.component.spec.ts,
users.component.ts,
users.component.css

1

ขั้นตอนที่ 1:

เข้าสู่ Project Directory! (cd ลงในแอพที่สร้างขึ้น)

ขั้นตอนที่ 2:

พิมพ์คำสั่งต่อไปนี้แล้วรัน!

ng generate component [componentname]

  • เพิ่มชื่อส่วนประกอบที่คุณต้องการสร้างในส่วน [ชื่อคอมโพเนนต์]

หรือ

ng generate c [componentname]

  • เพิ่มชื่อส่วนประกอบที่คุณต้องการสร้างในส่วน [ชื่อคอมโพเนนต์]

ทั้งสองอย่างจะได้ผล

สำหรับการอ้างอิงเช็คเอาต์ส่วนนี้ของ Angular Documentation!

https://angular.io/tutorial/toh-pt1

สำหรับการอ้างอิงโปรดตรวจสอบลิงก์ไปยัง Angular Cli บน github!

https://github.com/angular/angular-cli/wiki/generate-component



1

cd ไปยังโครงการของคุณและเรียกใช้

> ng generate component "componentname"
ex: ng generate component shopping-cart

หรือ

> ng g c shopping-cart

(สิ่งนี้จะสร้างโฟลเดอร์ใหม่ในโฟลเดอร์ "app" ที่มีชื่อ "shopping-cart" และสร้างไฟล์. html, .ts, .css.)

หากคุณไม่ต้องการสร้างไฟล์. spec

> ng g c shopping-cart --skipTests true

หากคุณต้องการสร้างส่วนประกอบในโฟลเดอร์ใด ๆ ใน "แอป"

> ng g c ecommerce/shopping-cart

(คุณจะได้รับโครงสร้างโฟลเดอร์ "app / ecommerce / shopping-cart")


1

ไปที่ไดเร็กทอรีโครงการของคุณใน CMD และเรียกใช้คำสั่งต่อไปนี้ คุณสามารถใช้เทอร์มินัลรหัส Visual Studio ได้เช่นกัน

ng generate component "component_name"

หรือ

ng g c "component_name"

โฟลเดอร์ใหม่"component_name"จะถูกสร้างขึ้น

component_name / component_name.component.html component_name / component_name.component.spec.ts component_name / component_name.component.ts component_name / component_name.component.css

ส่วนประกอบใหม่จะถูกเพิ่มโมดูลโดยอัตโนมัติ

คุณสามารถหลีกเลี่ยงการสร้างไฟล์ข้อมูลจำเพาะได้โดยทำตามคำสั่ง

ng g c "component_name" --nospec


0

ส่วนใหญ่มีสองวิธีในการสร้างองค์ประกอบใหม่ในเชิงมุมโดยใช้วิธีอื่นที่ใช้ng g c <component_name> ng generate component <component_name>โดยใช้คำสั่งเหล่านี้สามารถสร้างส่วนประกอบใหม่ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.