ข้อผิดพลาดของ Angular CLI: คำสั่งบริการจำเป็นต้องถูกเรียกใช้ในโครงการ Angular แต่ไม่พบคำจำกัดความของโครงการ


158

เมื่อเรียกใช้คำสั่งเทอร์มินัลng serverหรือng serve --live-reload=trueฉันพบปัญหานี้:

คำสั่งให้บริการจะต้องมีการเรียกใช้ในโครงการเชิงมุม แต่ไม่พบคำนิยามของโครงการ


11
ตรวจสอบว่าคุณมีโฟลเดอร์ node_modules ในโฟลเดอร์โปรเจ็กต์หรือไม่หากไม่ได้ติดตั้ง
npm

ฉันมีโฟลเดอร์ node_modules แล้ว
Gurpreet Singh

ฉันสะดุดกับคำถามนี้เมื่อฉันมีข้อผิดพลาดเดียวกันเมื่อพยายามเรียกใช้ "ng build" คำตอบสำหรับฉันคือเรียกใช้ "npm run build"
cfranklin

ฉันอยู่ในไดเรกทอรีรากและได้รับข้อผิดพลาดนี้: D หลังจากng new projectฉันลืมที่จะเข้าสู่ไดเรกทอรีโครงการ
Davut Gürbüz

คำตอบ:


228

ฉันยังได้รับปัญหานี้และแก้ไขได้โดยการเรียกใช้คำสั่งด้านล่าง

ng update @angular/cli --migrate-only --from=<WhateverVersionYouAreCurrentlyOn>

เช่น

ng update @angular/cli --migrate-only --from=1.7.3

ได้รับการอ้างอิงจากที่นี่https://github.com/angular/angular-cli/issues/12215#issuecomment-433593036


30
มันเกิดขึ้นเพราะ angular-cli ใหม่ขึ้นอยู่กับการใช้ angular.json แทนที่จะเป็น. triangle-cli.json เป็นไฟล์โครงการและคำตอบของคุณจะดูแลการแปลงนี้
รหัสชื่อ Jack

7
หมายเหตุ: --from=1.7.4หมายถึงรุ่นที่ถูกอพยพมาจากดังนั้น1.7.4ควรจะเปลี่ยนเป็นรุ่นเชิงมุมคุณก่อนใช้ (เช่น5.2.10, 6.0.0ฯลฯ )
cjn

4
ng update @ angular / cli << สิ่งนี้ใช้ได้สำหรับฉันกับโครงการที่มีอยู่จากเชิงมุม 6 ถึง 7
Abdullah Adeeb

2
ฉันใช้ 1.2.4 และได้รับข้อผิดพลาดต่อไปนี้: The specified command update is invalid. For available options, see ``ng help``.ฉันแก้ไขได้โดยการอัปเดต angular-cli เป็น 1.7.4 แล้วทำตามคำตอบนี้
ILikeFood

1
ขอบคุณ ทำงานให้ฉันเมื่อฉันอัปเกรดเชิงมุมจาก 4.4.7 เป็น 7
Pullat Junaid

71

ตรวจสอบให้แน่ใจว่าคุณกำลังรันคำสั่งในโฟลเดอร์ root ของแอปพลิเคชัน


ในการเข้าถึงการใช้โฟลเดอร์รากของคุณ pm> dir pm> cd clientappแล้วถ้าคุณมีข้อผิดพลาดการใช้งานดังต่อไปนี้ pm>ng config -g cli.warnings.versionMismatch false
hosam hemaily

44

หากคุณดาวน์โหลดโครงการให้ทำในโครงการ

ติดตั้ง NPM


ปัญหาของผมก็คือแพคเกจ NPM เอกชนที่ไม่ได้ติดตั้ง
เดวิด

ปัญหาเดียวกันฉันมีเมื่อพยายามทดสอบโครงการสำหรับการสอนเชิงมุม
mahlatse

19

ในที่สุดคำสั่งด้านล่างแก้ไขปัญหาสำหรับฉัน!

ng update --all --force

ฉันพยายามng update @angular/cliไม่ทำงาน แต่ng update --all --forceทำงานได้ตามที่คาดหวังอะไรคือความแตกต่าง
k11k2

15

ข้อผิดพลาดของ Angular Cli: คำสั่งบริการจำเป็นต้องถูกเรียกใช้ในโครงการ Angular แต่ไม่พบคำจำกัดความของโครงการ

เกิดปัญหากับไฟล์ angular.json

    ng update --all --force

ทดสอบในเชิงมุม 7+


5

มันเกิดขึ้นในโครงการที่มีอยู่ของฉันขณะที่ฉันพยายามอัปเดตเป็นแพ็คเกจล่าสุดnodeและnpm:

  1. ถอนการติดตั้งทั่วโลก: npm uninstall -g angular-cli
  2. รีเซ็ตแคช: npm cache cleanหรือnpm cache verify(สำหรับnpm version> 5)
  3. ติดตั้งล่าสุด: npm install -g @angular/cli@latest

4

ตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าการกำหนดค่าเวอร์ชันเชิงมุมใหม่ในโครงการของคุณ cli เชิงมุมใหม่ใช้ angular.json และไม่ใช่. triangle-cli.json สำหรับการตั้งค่า

ทำตามคำแนะนำการโยกย้าย


4

มันโง่ฉัน แต่ต้องออกความคิดเห็นบางทีฉันอาจช่วยคนอื่นให้ยุ่งยากบ้าง ข้อความเดียวกันที่เกิดขึ้นถ้าคุณทำงานหลายและมีหลายโครงการเพื่อให้บางส่วนของโครงการเป็นโฟลเดอร์ภายในโครงการที่ซ้อนกันเช่นprojectFolder/subProject/projectOneเพื่อให้ผมอยู่ในความพยายามที่จะเรียกใช้คำสั่งprojectFolder/subProjectng serve

ตรวจสอบให้แน่ใจว่าคุณอยู่ในโฟลเดอร์ที่ถูกต้องเพราะข้อผิดพลาดเดียวกันจะเกิดขึ้นหากคุณอยู่ในโฟลเดอร์ที่ไม่ถูกต้องและ conf และบิลด์จะหายไป!


3

ใน Package Manager Console ของคุณให้รันคำสั่ง

PM> cd NameofApp 

จากนั้นคุณสามารถลองเรียกใช้คำสั่งนั้นได้ตัวอย่างเช่น

PM > ng generate component Home

3

การติดตั้งกลับมาใหม่แอพพลิเคชั่นนั้นดีกว่าการอัพเดทหรือแก้ไขการกำหนดค่าบางอย่างที่ไม่รู้จักในเวลาบ่ายสามโมงเนื่องจากการกำหนดค่าที่ขาดหายไปหรือเราไม่แน่ใจว่าเกิดอะไรขึ้น

ฉันเลือก @Tinu ทางออกทำงานได้

ขั้นตอนที่ 1) การติดตั้ง npm -g @ angular / cli

ขั้นตอนที่ 2) ใหม่ my-angular-project

ขั้นตอนที่ 3) cd my-angular-project

ขั้นตอนที่ 4) ng เสิร์ฟ - เปิด

เพิ่งทำการสำรองข้อมูลสำหรับซอร์สโค้ดปัจจุบันของเราและนำกลับไปที่โปรเจคเชิงมุมใหม่ที่สร้าง


2

สิ่งนี้เกิดขึ้นเมื่อคุณพยายามเรียกใช้คำสั่ง Angular "ng s" หรือ "ng เสิร์ฟ" ในโฟลเดอร์อื่นแทนโฟลเดอร์รูทของแอปพลิเคชัน Angular

อัพเกรด Angular ด้วยคำสั่งดังต่อไปนี้:

ng update @angular/cli --migrate-only --from=1.7.4

มันจะเรียงลำดับออก


2

ในกรณีของฉันฉันลืมเปลี่ยนไดเรกทอรีดังนั้นหลังจากรันคำสั่ง:

ใหม่ AngularProject

รันคำสั่งอื่น:

cd AngularProject

และng serveทำงานให้ฉัน


2

ฉันมีปัญหาเดียวกันกับ Angular7 เพราะเราต้องไปที่โฟลเดอร์รูทก่อนเรียกใช้แอปพลิเคชันของคุณ ไปที่โฟลเดอร์รูทของแอพและเรียกใช้คำสั่ง มันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน


2

ปัญหาเดียวกันฉันเจอ แต่ฉันแก้ไขโดยทำตามขั้นตอนของรหัส

Step 1) npm install -g @angular/cli
Step 2) ng new my-angular-project
Step 3) cd my-angular-project
Step 4) ng serve --open

ทำไมเราต้องสร้างโครงการใหม่ ฉันต้องการให้เรื่องนี้ทำกับคนที่มีอยู่แล้ว
Dadhich Sourav

เหตุใดจึงสร้างโครงการใหม่ หากใครมีปัญหาในโครงการที่มีอยู่
Lint

2

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

เพียงนำทางไปยังเส้นทางที่จัดเก็บโครงการและใช้คำสั่ง

npm install

(หมายเหตุ - ควรติดตั้ง Node.js ในระบบของคุณและหากคุณกำลังใช้ Angular 2 หรือสูงกว่า angular cli ควรติดตั้งในระบบของคุณก่อนที่คุณจะรันคำสั่งนี้เพื่อตรวจสอบว่า node.js ติดตั้งอยู่ในระบบของคุณ 1) Open cmd (path ใด ๆ ที่เป็น node ควรติดตั้งแบบโกลบอลในระบบของคุณ) 2) use command

node -v
npm -v

เพื่อรับโหนดและเวอร์ชัน npm)

สิ่งสำคัญอีกอย่างหนึ่ง: เวอร์ชันเชิงมุมจะไม่สร้างความแตกต่างหากรุ่นที่ติดตั้งในระบบของคุณสูงกว่ารุ่นที่โครงการต้องการ มันจะให้คำเตือน แต่คุณสามารถละเว้นคำเตือน


2

ข้อผิดพลาดนี้อาจเกิดขึ้นเมื่อเราอยู่ในไดเรกทอรีที่ไม่ถูกต้องดังนั้นใช้คำสั่ง cd เพื่อเปลี่ยนไดเรกทอรีของคุณ มันไม่ชัดเจนมากจากความคิดเห็นข้างต้นว่าคำสั่งใดให้ข้อผิดพลาดนี้ดังนั้นคำตอบนี้จะขึ้นอยู่กับข้อสันนิษฐานว่าคุณกำลังเรียกใช้ ng ให้บริการนอกโฟลเดอร์ราก / โฟลเดอร์โครงการจริง นั่นเป็นสาเหตุที่ทำให้เกิดข้อผิดพลาดเนื่องจากคำสั่ง cli ต้องการไฟล์ conf & build เพื่อเรียกใช้ cli build

These should be the steps:
npm install -g @angular/cli  //corrected from 'angular-cli'
ng new projectname
cd projectname
ng serve
open http://localhost:4200


1

ฉันพบข้อผิดพลาดเดียวกัน เหตุผลก็คือการอัปเดตเชิงมุม cli ใหม่ทำให้ angular-cli.json ซ้ำซ้อนและมันจะถูกแทนที่ด้วย angular.json แทน เวอร์ชัน Angular Cli ก่อนหน้าของฉันคือ 1.7.4 ดังนั้นเพื่อทำการเปลี่ยนแปลงฉันรันคำสั่งต่อไปนี้มันจะทำการแปลงให้คุณ:

ng update @angular/cli --migrate-only --from=1.7.4

ตัวเลือกที่ไม่รู้จัก: '- เป้าหมาย' npm ERR! รหัส ELIFECYCLE
Sohail

1

ฉันประสบปัญหาเดียวกันเมื่อ

ฉันได้สร้างโครงการเชิงมุมใหม่โดยใช้เวอร์ชันเชิงมุมเก่า (1.4.7) จากนั้นฉันก็อัปเดตมุมเชิงมุมโดยใช้คำสั่งด้านล่าง ( อย่าทำด้านล่างเพื่ออัพเดท CLI )

  • npm uninstall -g @angular/cli
  • npm cache clean --force
  • npm install -g @angular/cli@latest

ตอนนี้เมื่อฉันพยายามng serveฉันได้รับข้อผิดพลาดเช่นเดียวกับคุณ

Angular Cli Error: The serve command requires to be run in an Angular project, but a project definition could not be found

ทำการปรับปรุง CLI

ng update @angular/cli --migrate-only --from=1.4.7

1

อย่างที่ Usman กล่าวว่าฉันมีปัญหามากมายในครั้งแรกฉันทำตามบทช่วยสอน ฉันไม่ได้ตั้งค่าไดเรกทอรีของฉันเป็นไดเรกทอรีโครงการจึงได้รับข้อผิดพลาดนี้

ฉันแก้ไขปัญหาโดย

  1. การตั้งค่าไดเรกทอรีรากที่ถูกต้องให้เป็นที่ตั้งโครงการของฉัน cd myproject
  2. รวบรวมแอพ - ng serve

นั่นมัน


1

พยายามทั้งหมดข้างต้น แต่สำหรับฉันแล้วมันก็ถูกแก้ไขโดย

npm start


ควรอยู่ในส่วนความคิดเห็น
Pardeep

@Pareep ฉันลองคำตอบทั้งหมดข้างต้นแล้ว แต่การเริ่มต้น npm เริ่มทำงานฉัน ดังนั้นมันจะเป็นประโยชน์สำหรับนักพัฒนาคนอื่น ๆ ถ้ามันทำเป็นคำตอบที่สะดุดตามากกว่าที่จะเก็บไว้ในความคิดเห็น
5154

1

ฉันใช้ ionciv1 ในไฟล์ionic.config.jsonลบคีย์ประเภทแองกูลาร์และทำงานได้อย่างถูกต้อง

ตัวอย่าง:

  {
  "name": "nombre",
  "integrations": {
    "cordova": {}
  },
  "type": "angular", // delete
  "gulpStartupTasks": [
    "sass",
    "templatecache",
    "ng_annotate",
    "useref",
    "watch"
  ],
  "watchPatterns": [
    "www/**/*",
    "!www/lib/**/*"
  ],
  "browsers": [
    {
      "platform": "android",
      "browser": "crosswalk",
      "version": "12.41.296.5"
    }
  ],
  "id": "0.1"
}

แก้ไข

     {
      "name": "nombre",
      "integrations": {
        "cordova": {}
      },
      "gulpStartupTasks": [
        "sass",
        "templatecache",
        "ng_annotate",
        "useref",
        "watch"
      ],
      "watchPatterns": [
        "www/**/*",
        "!www/lib/**/*"
      ],
      "browsers": [
        {
          "platform": "android",
          "browser": "crosswalk",
          "version": "12.41.296.5"
        }
      ],
      "id": "0.1"
    }

1

ข้อผิดพลาดนี้มักจะสามารถตรวจสอบย้อนกลับไปยังการปรับปรุงรันไทม์ CLI ทั่วโลกหรือท้องถิ่นของเรา ในการตรวจสอบว่านี่เป็นปัญหาหรือไม่เราจำเป็นต้องตรวจสอบpackage.jsonไฟล์ ที่นั่นเราควรมองหาการพึ่งพา@ angular / cli สิ่งนี้ควรระบุรุ่น CLI ที่ใช้สร้างโครงการของเรา ให้บันทึกค่านี้ตามที่เราต้องการใช้เพื่อย้ายโครงการของเราในภายหลัง

ตอนนี้เราควรเปรียบเทียบกับรันไทม์ CLI ปัจจุบันโดยการป้อนคำสั่งต่อไปนี้บนหน้าต่างเทอร์มินัล

ng v

เอาต์พุตของ ng v

หากคุณได้รับข้อผิดพลาดAn unhandled exception occurred: ENOENT: no such file or directory, scandir '~/your-app/node_modules'คุณลืมที่จะเรียกใช้npm install

คอนโซลควรแสดงเวอร์ชัน CLI ปัจจุบัน หากเวอร์ชันต่างกันเราจำเป็นต้องย้ายโครงการไปเป็นเวอร์ชัน CLI ใหม่โดยการรันคำสั่งด้านล่าง โปรดทราบว่าพารามิเตอร์from version ควรตั้งค่าเป็นค่าที่พบสำหรับการตั้งค่า@ angular / cli

ng update @angular/cli --migrate-only --from=1.6.7

ตอนนี้เราควรมาดูโครงการของเราและควรสังเกตการเปลี่ยนแปลงของเวอร์ชันการพึ่งพา CLI ในpackage.jsonไฟล์ นอกจากนี้ยังขึ้นอยู่กับรุ่น CLI ของคุณ.angular-cli.jsonไฟล์จะถูกลบและใหม่angular.jsonไฟล์จะถูกสร้างขึ้น นี่เป็นไฟล์โครงการที่ CLI ใหม่กำลังค้นหาและทำให้แหล่งที่มาของข้อผิดพลาดไม่พบโครงการ โดยการเพิ่มไฟล์นี้เราควรจะสามารถกลับมาติดตามการทำงานโครงการของเราอีกครั้ง

เราควรจะสามารถป้อนคำสั่งต่อไปนี้และโครงการควรจะโหลดได้ดี

ng server

ขอบคุณozkary


1

ตรวจสอบให้แน่ใจว่าคุณได้สร้างแอพเชิงมุมโดยใช้คำสั่งด้านล่างจากนั้นเรียกใช้บริการ ng ในโฟลเดอร์โครงการที่สร้างขึ้น

ng new Project_Name

0

นอกจากนี้ตรวจสอบให้แน่ใจว่าคุณใช้ ng ให้บริการที่คุณหยุดมันก่อน ...


0

แก้ไข ผมได้รับปัญหาเดียวกันในอูบุนตู 18.04.01 LTS ไม่มีตัวเลือกด้านบนทำงานเมื่อฉันใช้NVM (Node Version manager)วิธีแก้ไขคือ
ก่อนสร้างโครงการใช้คำสั่ง
nvm ใช้ 10
(รุ่นโหนดของฉันคือ 10.15.0 ดังนั้นฉันใช้ "nvm ใช้ 10")
มันจะแสดงผลลัพธ์ให้คุณ
ตอนนี้ใช้โหนด v10.15.0 (npm v6.4.1)
เวอร์ชั่นจะแตกต่างกันไปตามแต่ละระบบ จากนั้นสร้างโครงการใหม่


0

คุณสามารถอัปเดตเชิงมุมด้วยคำสั่ง 'ng update --all' ต้องใช้เวลา แต่ต้องแน่ใจว่าส่วนประกอบทั้งหมดของคุณเป็นรุ่นล่าสุด


0

โปรดตรวจสอบว่าคุณอยู่ในโฟลเดอร์โครงการหรือไม่และลองใช้คำสั่ง ng serveอีกครั้ง

ฉันได้รับข้อผิดพลาดเดียวกันตั้งแต่ฉันพยายาม ng serveสั่งนอกโครงการ

ตัวอย่าง :: สมมติว่าคุณมีโครงการที่มีชื่อ "อีคอมเมิร์ซ" เข้าไปในโฟลเดอร์และลองใช้คำสั่ง ng serve เปิดเทอร์มินัลซีดีอีคอมเมิร์ซ ng ให้บริการ



0

สิ่งนี้เกิดขึ้นเพราะเรากำลังกดปุ่มคำสั่ง ng บริการในเส้นทางอื่น ๆ ซึ่งสามารถแก้ไขได้โดยการกดปุ่มคำสั่ง ng เสิร์ฟหรือ npm เริ่มบนเส้นทางที่โครงการของเราตั้งอยู่ (ใช้เส้นทางจนกว่าโฟลเดอร์ที่มี src, node_modules ฯลฯ )

F: \ project \ AngularDemo \ AngularDemoapp> ng ทำหน้าที่

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