รุ่น Global Angular CLI มากกว่ารุ่นท้องถิ่น


355

เมื่อใช้งานng serveฉันจะได้รับคำเตือนเกี่ยวกับเวอร์ชัน CLI ทั่วโลกของฉันที่สูงกว่าเวอร์ชันท้องถิ่นของฉัน ฉันไม่ได้สังเกตเห็นปัญหาใด ๆ จากคำเตือนนี้ แต่ฉันสงสัยว่าทั้งสองเวอร์ชันควรซิงค์กันหรือไม่ นอกจากนี้จำเป็นต้องมีรุ่นในตัวเครื่องหรือไม่ถ้าคุณมีรุ่นทั่วโลก

คำเตือน:

เวอร์ชัน Angular CLI ทั่วโลกของคุณ (1.1.1) มากกว่ารุ่นท้องถิ่น (1.0.6) มีการใช้รุ่น Angular CLI ในเครื่อง


43
มีใครตอบว่าทำไมเราถึงต้องการทั้งในระดับท้องถิ่นและระดับโลก?
Rap

คำตอบ:


466

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

หากคุณพยายามเรียกใช้ng serveแอปพลิเคชันที่ไม่มีการติดตั้งในเครื่องของ CLI (การติดตั้งทั่วโลกเท่านั้น) คุณจะได้รับข้อผิดพลาดต่อไปนี้

คุณต้องอยู่ในโครงการ Angular CLI เพื่อใช้คำสั่งบริการ

มันจะพิมพ์ข้อความนี้:

Please take the following steps to avoid issues:
"npm install --save-dev @angular/cli@latest"

รันnpmคำสั่งนั้นเพื่ออัพเดต CLI แบบโลคัลและหลีกเลี่ยงคำเตือนที่คุณได้รับ

คำถามอื่น ๆ : ดูเหมือนว่าพวกเขาไม่จำเป็นต้องซิงค์ แต่อาจเป็นการดีที่สุดที่จะหลีกเลี่ยงพฤติกรรมที่ผิดปกติกับเครื่องมือหรือความไม่สอดคล้องกับรหัสที่เครื่องมือสร้างขึ้น

ทำไมเราต้องมีทั้งการติดตั้งทั่วโลกและการติดตั้งในเครื่อง?

จำเป็นต้องติดตั้งทั่วโลกเพื่อเริ่มแอปพลิเคชันใหม่ ng new <app-name>คำสั่งทำงานโดยใช้การติดตั้งทั่วโลกของ CLI ที่จริงแล้วถ้าคุณพยายามเรียกใช้ng newขณะที่อยู่ภายในโครงสร้างโฟลเดอร์ของแอปพลิเคชัน CLI ที่มีอยู่คุณจะได้รับข้อผิดพลาดที่น่ารักนี้:

คุณไม่สามารถใช้newคำสั่งในโครงการ Angular CLI

คำสั่งอื่น ๆ ที่สามารถเรียกใช้จากทั่วโลกติดตั้งกำลังng help, ng get/setกับ--globalตัวเลือกng version, ng docและng completionและ

การติดตั้งภายในของ CLI จะใช้หลังจากสร้างแอปพลิเคชันแล้ว วิธีนี้เมื่อมีรุ่นใหม่ของ CLI ให้ใช้งานคุณสามารถอัปเดตการติดตั้งทั่วโลกของคุณและไม่มีผลกับการติดตั้งในเครื่อง สิ่งนี้ดีต่อความมั่นคงของโครงการ ส่วนใหญ่ngคำสั่งเพียง แต่จะทำให้ความรู้สึกกับรุ่นท้องถิ่นเช่นlint, buildและserveอื่น ๆ

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


ไม่มีทางแทนที่การอัพเดต cli ตัวอย่างเช่นฉันต้องการรันโมดูลการติดตั้งด้วยเวอร์ชัน cli ที่มีอยู่ของฉัน หรือไม่มีวิธีการบังคับใช้เมื่อเรียกใช้คำสั่งเพื่อใช้ local cli ไม่ใช่โกลบอล?
Mohammed Yassine CHABLI

3
เวอร์ชันโลคัลของ CLI ถูกใช้โดยดีฟอลต์เมื่อรันคำสั่งในไดเร็กทอรีโปรเจ็กต์ CLI มันบอกว่ามากในการเตือน
R. Richards

แต่ฉันไม่รู้ว่าทำไมโซลูชันนี้จึงไม่ได้ผลสำหรับฉัน ถ้าฉันพูดถึงใน package.json ของฉันเป็นค่าของ angular-cli = "^ 1.0.6" ทำงานได้ แต่ก็ยังไม่เข้าใจว่าเกิดอะไรขึ้น
Mohammed Yassine CHABLI

1
npm ถอนการติดตั้ง -g @ angular / cli, npm cache clear --force, npm install @ angular / cli
Hesham Yassin

1
@Doug นั่นถูกต้องแล้ว คุณจะได้รับคำเตือนเมื่อเรียกใช้คำสั่งเหล่านั้นสำหรับโครงการที่มี CLI เวอร์ชันต่ำกว่า แต่คุณสามารถเพิกเฉยได้ คำเตือนทั้งหมดบอกว่าเป็นรุ่นที่แตกต่างกันและจะใช้ CLI ท้องถิ่น
R. Richards

153

นี่คือวิธีที่ฉันแก้ไขปัญหา

ติดตั้งแพ็คเกจ Angular CLI ล่าสุดภายในเครื่อง

คัดลอกและเรียกใช้คำสั่งเหล่านี้

ng --version
npm install --save-dev @angular/cli@latest
ng --version

1
ฉันจะเพิ่มขั้นตอนที่ 1.5 (ถ้าคุณจะ) rm node_modules/.bin/ngเป็น: ทำงานได้อย่างสมบูรณ์แบบ
bretonics

42

สิ่งนี้ใช้ได้กับฉัน: มันจะอัปเดตเวอร์ชันท้องถิ่นเป็นล่าสุด

npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install

เพื่อตรวจสอบเวอร์ชั่น

  ng --version

ฉันแปลงมันเป็นคำสั่งชุดเก่า Windoze: CALL npm ถอนการติดตั้ง --save-dev @ angular / cli CALL ติดตั้ง npm --save-dev @ angular / cli @ ล่าสุด CALL ng ติดตั้ง CALL ng
Lee H

1
ทำตามขั้นตอนของคุณ พยายามng serve --openและได้ "CLI รุ่นนี้ใช้ได้กับ Angular รุ่น 5.0.0 หรือสูงกว่าเท่านั้นโปรดไปที่ลิงก์ด้านล่างเพื่อค้นหาคำแนะนำเกี่ยวกับวิธีการอัปเดต Angular angular-update-guide.firebaseapp.com "
Aggie Jon of 87

17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

จากนั้นในแพ็คเกจโครงการท้องถิ่นของคุณ:

rm -rf node_modules dist 
npm install --save-dev @angular/cli@latest
npm i 
ng update @angular/cli 
ng update @angular/core
npm install --save-dev @angular-devkit/build-angular

ได้รับด้านล่างข้อผิดพลาดข้อผิดพลาด: ไม่คาดหวังจุดสิ้นสุดของการป้อนข้อมูล JSON จุดสิ้นสุดที่ไม่คาดคิดของการป้อนข้อมูล JSON เหนือขั้นตอนช่วยจากโพสต์นี้ไม่สามารถอัปเดตเชิงมุมเป็นรุ่น 6


1
การติดตั้ง npm --save-dev @ angular-devkit / build-angular - ได้ช่วยปรับปรุง ng @ angular / cli -> ได้สร้าง angular.json และการปรับปรุงอื่น ๆ
MPV

15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

การกำหนดค่าที่มีอยู่ของคุณสามารถอัพเดตได้โดยอัตโนมัติ

ng update @angular/cli

หรือ:

npm install

8

ในกรณีของฉันฉันเพิ่งใช้คำสั่งนี้เป็นโครงการ:

ng update @angular/cli

4

รันคำสั่งต่อไปนี้: npm install --save-dev @angular/cli@latest

หลังจากใช้คำสั่งข้างต้นคอนโซลอาจปรากฏข้อความด้านล่าง

รูปแบบการกำหนดค่า Angular CLI มีการเปลี่ยนแปลงและการกำหนดค่าที่มีอยู่ของคุณสามารถอัปเดตโดยอัตโนมัติโดยใช้คำสั่งต่อไปนี้: ng update @ angular / cli


4

ฉันพูดภาษาอังกฤษไม่คล่อง

แต่ถ้าฉันเข้าใจปัญหานั่นเป็นสิ่งที่อยู่ในโครงการคุณมีเวอร์ชันเก่ากว่าของ CLI ทั่วโลกหรือไม่

และคุณต้องการใช้โลกที่ใหม่กว่านี้แทนที่จะเป็นรุ่นเก่ากว่าในพื้นที่หรือไม่

ถ้าเป็นเช่นนั้นวิธีง่าย ๆ ก็เพียงพอที่จะเรียกใช้ในไดเรกทอรีโครงการ npm link @angular/cli

เพิ่มเติมในหัวข้อในหน้า: https://docs.npmjs.com/cli/link


3

ขั้นแรกให้ค้นหาเวอร์ชันเชิงมุมทั่วโลกโดยเรียกใช้

ng --version

โค้ดด้านบนจะแสดงว่าเวอร์ชันใดเป็นเวอร์ชันสากลและภายในเชิงมุม

ถ้าคุณต้องการให้ cli เชิงมุมระดับโลกและระดับท้องถิ่นเหมือนกันคุณก็ทำได้

npm install --save-dev @angular/cli@1.7.4

ที่ 1.7.4 เป็นเวอร์ชันเชิงมุมทั่วโลกของคุณ

จากนั้นถ้าคุณเรียกใช้ng serve --openรหัสของคุณควรเรียกใช้


3

คุณเพียงแค่ต้องอัปเดต AngularCli

npm install --save-dev @angular/cli@latest

0

สองวิธีในการแก้ปัญหาเวอร์ชัน CLI เชิงมุมระดับโลกและระดับท้องถิ่นนี้
1. เก็บเวอร์ชันเชิงมุมเฉพาะสำหรับสภาพแวดล้อมทั้งสอง
2. ไปรุ่น angi-cli ล่าสุดสำหรับทั้งสองสภาพแวดล้อม

1. รุ่นมุมเชิงมุมที่เฉพาะเจาะจง

ก่อนอื่นให้ตรวจสอบว่าคุณต้องการเก็บรุ่นเชิงมุมไว้ในสภาพแวดล้อมระดับโลกและระดับท้องถิ่น

ng --version

ตัวอย่างเช่น:ที่นี่เราเก็บเวอร์ชันเชิงมุม CLI ของท้องถิ่นไว้ที่ 8.3.27

ดังนั้นเราต้องเปลี่ยนเวอร์ชันทั่วโลกเช่นกันใน 8.3.27 ใช้คำสั่ง>

npm install --save-dev @angular/cli@8.3.27 -g

ที่นี่แฟล็ก '-g' สำหรับชุดเวอร์ชันเชิงมุมทั่วโลก

2. ไปที่เวอร์ชันเชิงมุมล่าสุดสำหรับทั้งสภาพแวดล้อม CLI

npm install --save-dev @angular/cli@latest -g  
npm install --save-dev @angular/cli@latest 

-1

การติดตั้ง npm --save-dev @ angular-devkit / build-angular - ได้ช่วยปรับปรุง ng @ angular / cli -> ได้สร้าง angular.json และการปรับปรุงอื่น ๆ

กำลังรวบรวมการพึ่งพาที่ติดตั้ง ... พบการอ้างอิง 58 รายการ

 ** Executing migrations for package '@angular/cli' **
            Updating karma configuration
            Updating configuration
            Removing old config file (.angular-cli.json)
            Writing config file (angular.json)
            Some configuration options have been changed, please make sure to update any  npm scripts which you may have modified. DELETE .angular-cli.json CREATE angular.json (4394 bytes) CREATE browserslist (429 bytes) UPDATE karma.conf.js (993 bytes) UPDATE public/tsconfig.spec.json (295 bytes) UPDATE package.json (2618 bytes) UPDATE tsconfig.json (437 bytes) UPDATE tslint.json (3135 bytes) UPDATE public/polyfills.ts (587 bytes) UPDATE public/tsconfig.app.json (199 bytes) npm WARN @angular/core@5.2.9 requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.

-1

อัปเดต Angular CLI สำหรับพื้นที่ทำงาน (ในเครื่อง)

npm install --save -dev @angular/cli@latest

หมายเหตุ: ตรวจสอบให้แน่ใจว่าติดตั้งเวอร์ชันโกลบอลโดยใช้คำสั่งด้วย '-g' คือถ้าติดตั้งอย่างถูกต้อง

npm install -g @angular/cli@latest

เรียกใช้คำสั่งอัปเดตเพื่อรับรายการการพึ่งพาทั้งหมดที่จำเป็นสำหรับการอัพเกรด

ng update

ถัดไปเรียกใช้คำสั่งการอัปเดตดังต่อไปนี้สำหรับแต่ละแพ็คเกจหลักของแต่ละแองกูลาร์

ng update @angular/cli @angular/core

อย่างไรก็ตามฉันต้องเพิ่มคำสั่ง '–force' และ '–allow-สกปรก' ค่าสถานะเพิ่มเติมเพื่อแก้ไขปัญหาที่รอดำเนินการอื่น ๆ ทั้งหมด

ng update @angular/cli @angular/core --allow-dirty --force


-1

เพียงทำสิ่งเหล่านี้

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force

1
เนื่องจากคำถามนี้มีอายุเกือบ 3 ปีและมีคำตอบอยู่ 14 ข้อคำตอบของคุณจะมีค่ามากกว่านี้ถ้าคุณอธิบายว่าทำไมคำตอบของคุณถึงคุณค่าที่ไม่ได้ครอบคลุมโดยคำตอบที่มีอยู่ทั้งหมด
David Buck

-2

ลบมุมปัจจุบันและติดตั้งรุ่นเฉพาะ

  1. ตรวจสอบเวอร์ชั่น

    ng - รุ่น

  2. หากไม่ต้องการให้ถอนการติดตั้งเวอร์ชัน

    ถอนการติดตั้ง npm -g @ angular / cli

  3. ถ้า npm vesrion <5.x

    แคช NPM สะอาด

  4. ตรวจสอบแคช

    ตรวจสอบแคช NPM

  5. ติดตั้งรุ่นเฉพาะ

    npm install -g @ angular / cli @ major.minor.patch

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