วิธีอัปเกรด Angular CLI เป็นเวอร์ชันล่าสุด


102

ใช้ng --versionฉันได้:

@ เชิงมุม / cli: 1.0.0

ซึ่งไม่ใช่รุ่นล่าสุดที่มีให้

เนื่องจากฉันได้ติดตั้ง Angular CLI ทั่วโลกในระบบของฉันเพื่อที่จะอัปเกรดฉันได้ลอง:

npm update angular-cli -g

แต่ไม่ได้ผลเพราะยังคงเป็นเวอร์ชัน 1.0.0

คำตอบ:


843

หลังจากอ่านปัญหาบางอย่างที่รายงานในที่เก็บ GitHub ฉันพบวิธีแก้ปัญหา

ในการอัปเดตแพ็คเกจ angular-cli ที่ติดตั้งทั่วโลกในระบบของคุณคุณต้องเรียกใช้:

npm uninstall -g @angular-cli
npm install -g @angular/cli@latest

sudoทั้งนี้ขึ้นอยู่กับระบบของคุณคุณอาจจะต้องมีคำนำหน้าคำสั่งข้างต้นด้วย

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

rm -rf node_modules
npm uninstall --save-dev @angular-cli
npm install --save-dev @angular/cli@latest
npm install

ขอบคุณgrizzm0สำหรับการชี้นี้ออกมาบนGitHub

หลังจากอัปเดต CLI ของคุณคุณอาจต้องการอัปเดตเวอร์ชัน Angular ของคุณด้วย

หมายเหตุ : หากคุณกำลังปรับปรุงเพื่อเชิงมุม CLI 6+ จากรุ่นเก่าที่คุณอาจจำเป็นต้องอ่านนี้

แก้ไข : นอกจากนี้หากคุณยังคงอยู่ในรุ่น 1.x ของ CLI คุณต้องแปลงของคุณangular-cli.jsonเพื่อangular.jsonที่คุณสามารถทำอะไรกับคำสั่งดังต่อไปนี้:

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

(ตรวจสอบนี้สำหรับรายละเอียดเพิ่มเติม)


3
Pedantic alert: คุณสามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงระหว่างเวอร์ชันต่างๆได้ในแท็บ Releases บน GitHub Link: github.com/angular/angular-cli/releases
Stuti Verma

15
อัปเดต 2017 (npm @ 5): หากคุณต้องการล้างแคชจริงๆ: "npm cache clean --force"
Neyt

3
ทำไมต้องถอนการติดตั้ง angular-cli และไม่ใช่ @ angular / cli ทั้งหมด
YASH DAVE

4
การรันคำสั่ง npm cache clean จะแสดงข้อผิดพลาด 'ณ วันที่ npm @ 5 แคช npm สามารถฮีลตัวเองจากปัญหาความเสียหายและข้อมูลที่ดึงจากแคชได้รับการรับรองว่าถูกต้อง หากคุณต้องการทำให้ทุกอย่างสอดคล้องกันให้ใช้ 'npm cache verification' แทน ' "ถ้าคุณต้องการบังคับคุณสามารถเพิ่ม --force
Pushkal Boganatham

1
@PushkalBoganatham ตามที่ @neyt ระบุไว้คุณต้องใช้--forceธง
svict4

151

ng6 + -> 7.0

อัปเดต RxJS (ขึ้นอยู่กับ RxJS 6.3)

npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json

ลบ rxjs-compat

จากนั้นอัปเดตแพ็คเกจหลักและ Cli:

ng update @angular/cli @angular/core

(ทางเลือก: อัปเดต Node.js เป็นเวอร์ชัน 10 ซึ่งรองรับใน NG7)

ng6 + (Cli 6.0+) : มีคำสั่งที่ง่ายขึ้น

ขั้นแรกอัปเดต Cli ของคุณ

npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli

จากนั้นอัปเดตแพ็คเกจหลักของคุณ

ng update @angular/core

หากคุณใช้ RxJS ให้เรียกใช้

ng update rxjs

มันจะอัปเดต RxJS เป็นเวอร์ชัน 6 และติดตั้งrxjs-compatแพ็คเกจภายใต้ประทุน

หากคุณพบข้อผิดพลาดในการสร้างให้ลองติดตั้งด้วยตนเองของ:

npm i rxjs-compat
npm i @angular-devkit/build-angular

สุดท้ายตรวจสอบเวอร์ชันของคุณ

ng v

หมายเหตุเกี่ยวกับการสร้างการผลิต:

ng6 ไม่ใช้intlในpolyfills.ts

//remove them to avoid errors
import 'intl';
import 'intl/locale-data/jsonp/en';

ng5 + (คลิ 1.5+)

npm install @angular/{animations,common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router}@next typescript@2.4.2 rxjs@'^5.5.2'
npm install typescript@2.4.2 --save-exact

บันทึก:

  1. เวอร์ชัน typescript ที่รองรับสำหรับ Cli 1.6 ขณะเขียนนั้นสูงถึง 2.5.3
  2. การใช้ @next จะอัปเดตแพ็กเกจเป็นเบต้าหากมี ใช้ @latest เพื่อรับเวอร์ชันล่าสุดที่ไม่ใช่เบต้า

หลังจากอัปเดตทั้งแพ็คเกจส่วนกลางและภายในแล้วให้ล้างแคชเพื่อหลีกเลี่ยงข้อผิดพลาด:

npm cache verify (recommended)
npm cache clean (for older npm versions)

นี่คือข้อมูลอ้างอิงอย่างเป็นทางการ:

  1. การอัปเดตCli
  2. การอัปเดตแพคเกจหลักแพ็กเกจหลัก

4
npm cache clean --force ช่วยฉันได้จริงๆ
Pini Cheyni

1
ทำไมโอ้ทำไมส่วนนี้ถึงไม่มีในบันทึกประจำรุ่น!
Drenai

คุณช่วยยืนยันได้ไหมว่าคุณพูดอะไรเกี่ยวกับ RxJS 6 ที่เลิกใช้งาน ทุกที่ที่ฉันมองดูเหมือนว่า v6 เป็นเวอร์ชันเสถียรล่าสุดgithub.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough

1
@JoeyGough จับดี! Ng7 ขึ้นอยู่กับ rxjs 6.3 ขอบคุณสำหรับความคิดเห็นของคุณ ref: github.com/angular/angular/blob/master/…
Pageii Studio

108

คุณสามารถใช้

npm install -g angular-cli - ถ้าเป็นครั้งแรกของคุณ

npm install -g @angular/cli@latest - หากคุณติดตั้งแล้วเพื่อทำการอัปเดต


37

คำสั่งที่มีประสิทธิภาพจะติดตั้งและแทนที่แพ็กเกจสุดท้าย

ฉันมีปัญหาที่คล้ายกัน ฉันซ่อมมัน.

 npm install -g @angular/cli@latest

และ

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

ป้อนคำอธิบายภาพที่นี่


สิ่งนี้จะใช้ได้กับ Angular CLI ในพื้นที่ตรวจสอบคำตอบของฉันเพื่ออัพเกรดระดับโลก
Francesco Borzi

อัปเกรด cli ทั่วโลกของฉัน
Rahmathullah M

36

คำสั่งนี้ใช้งานได้ดี:

npm upgrade -g @angular/cli

ดูเหมือนว่าจะอัปเกรด CLI เป็นเวอร์ชันรองล่าสุด
Alexei

23

วิธีการต่อไปนี้ใช้ได้ผลสำหรับฉัน:

npm uninstall -g @angular/cli

แล้ว

npm cache verify

แล้ว

npm install -g @angular/cli@latest

ฉันทำงานบน Windows 10 บางครั้งฉันก็ต้องใช้: npm cache clean --forceเช่นกัน คุณไม่จำเป็นต้องทำหากคุณไม่มีปัญหาใด ๆ ในระหว่างการติดตั้ง


2
คุณไม่จำเป็นต้องระบุ@latestเนื่องจากค่าล่าสุดเป็นค่าเริ่มต้น
Ambroise Rabier

หากวิธีนี้ไม่ได้ผลสำหรับคุณ: stackoverflow.com/a/58678941/8718377
veben

17

ถ้าคุณมีปัญหาใด ๆ ในการจัดการของคุณCLI โลกรุ่นมันจะดีกว่าที่จะใช้ NVM: MAC , ของ Windows

ในการอัปเดตCLIในเครื่องในโครงการ Angular ของคุณให้ทำตามขั้นตอนนี้:

เริ่มต้นจากCLI v6คุณสามารถเรียกใช้ng updateเพื่อให้การอ้างอิงของคุณอัปเดตเป็นเวอร์ชันใหม่โดยอัตโนมัติ

ng update @angular/cli

ในng updateบางครั้งคุณอาจต้องการเพิ่ม--forceค่าสถานะ

คุณยังสามารถส่งผ่าน--allแฟล็กเพื่ออัปเกรดแพ็คเกจทั้งหมดได้ในเวลาเดียวกัน

ng update --all --force

หากคุณต้องการเพียงแค่โยกย้าย CLI ให้เรียกใช้สิ่งนี้:

ng update @angular/cli --migrateOnly

นอกจากนี้คุณยังสามารถส่งผ่านธง--from=from- --from=1.7.4รุ่นที่จะโยกย้ายจากเช่น แฟล็กนี้ใช้ได้เฉพาะกับแพ็กเกจเดียวที่กำลังอัพเดตและเฉพาะเมื่อโอนย้ายเท่านั้น

หลังจากอัปเดตเสร็จแล้วตรวจสอบให้แน่ใจว่าเวอร์ชันของ typescript ที่คุณติดตั้งรองรับโดยเวอร์ชันเชิงมุมปัจจุบันของคุณมิฉะนั้นคุณอาจต้องดาวน์เกรดเวอร์ชัน typescript โปรดทราบว่าโดยปกติ angular เวอร์ชันล่าสุดจะไม่รองรับ typescript เวอร์ชันล่าสุด

ตรวจสอบAngular CLI / Angular / NodeJS / Typescriptเวอร์ชันที่เข้ากันได้ที่นี่

ดูคู่มือนี้ด้วยการอัปเดตโปรเจ็กต์เชิงมุมของคุณและupdate.angular.io


คำตอบเก่า:
สิ่งที่คุณต้องทำก็คือทำให้แตกต่างกับangular-cli-diffและใช้การเปลี่ยนแปลงในโครงการปัจจุบันของคุณ

นี่คือขั้นตอน:

  1. สมมติว่าคุณเริ่มจาก 1.4 เป็น 1.5 จากนั้นคุณทำhttps://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. คลิกที่File changedแท็บ
  3. ใช้การเปลี่ยนแปลงกับโครงการปัจจุบันของคุณ
  4. npm install / yarn
  5. ทดสอบทั้งหมดnpm scripts( รายละเอียดเพิ่มเติมที่นี่: https://stackoverflow.com/a/45431592/415078 )

14

นอกจากนี้ในการตอบ @ShinDarth

ฉันทำตามที่เขาพูด แต่แพ็คเกจของฉันไม่ได้อัปเดตเวอร์ชันเชิงมุมและฉันรู้ว่าโพสต์นี้เกี่ยวกับangular-cliแต่ฉันคิดว่าสิ่งนี้สามารถช่วยได้เช่นกัน

  • ดังนั้นหลังจากทำสิ่งที่ @ShinDarth กล่าวไว้ข้างต้นเพื่อแก้ไขเวอร์ชันเชิงมุมของฉันฉันต้องสร้างโครงการใหม่โดย-ng new projectnameสร้างแพ็คเกจขึ้นมา
  • คัดลอกแพ็กเกจใหม่จากนั้นวางแพ็กเกจใหม่ในแพ็กเกจโปรเจ็กต์ทั้งหมดที่ต้องการการอัปเดต (อย่าลืมเพิ่มการอ้างอิงที่คุณมีและเปลี่ยนชื่อในบรรทัดแรก) หรือคุณสามารถเปลี่ยนเวอร์ชันด้วยตนเองโดยไม่ต้องคัดลอกและวาง
  • -npm installจากนั้นก็วิ่ง

ตอนนี้ของฉันng serveกำลังทำงานอีกครั้งอาจมีวิธีที่ดีกว่าในการทำทั้งหมดนั้นถ้ามีใครรู้โปรดแชร์เพราะนี่เป็นความเจ็บปวดที่ต้องทำกับโครงการทั้งหมดที่ต้องอัปเดต


ดูเหมือนคำตอบของฉันจะเป็นมากกว่าคำตอบดังนั้นคุณอาจย้ายเป็นความคิดเห็นด้านล่างคำตอบของฉันก็ได้
Francesco Borzi

7
เอ๊ยคุณพูดถูก แต่ฉันต้องการ 50 ชื่อเสียงเพื่อแสดงความคิดเห็นกับคำตอบของคุณ
Leonardo Souza Paiva

9

ในการอัปเดตAngular CLIเป็นเวอร์ชันใหม่คุณต้องอัปเดตทั้งแพ็กเกจส่วนกลางและแพ็กเกจโลคัลของโปรเจ็กต์ของคุณ

แพ็คเกจทั่วโลก:

npm uninstall -g @angular/cli
npm cache clean
# if npm version is > 5 then use `npm cache verify` to avoid errors (or to avoid using --force)
npm install -g @angular/cli@latest

แพ็คเกจโครงการท้องถิ่น:

rm -rf node_modules dist # use rmdir /S/Q node_modules dist in Windows Command Prompt; use rm -r -fo node_modules,dist in Windows PowerShell
npm install --save-dev @angular/cli@latest
npm install

ที่มา: Github


3

ในกรณีของฉันฉันได้ติดตั้ง angular-cli ในเครื่องโดยใช้การติดตั้ง npm --save-dev angular-cli ดังนั้นเมื่อผมใช้คำสั่ง NPM ติดตั้ง -G @ เชิงมุม / CLI ก็สร้างข้อผิดพลาดบอกว่า"รุ่นเชิงมุม CLI โลกของคุณ (1.7.3) มีค่ามากกว่ารุ่นท้องถิ่นของคุณ (1.4.9)" โปรดทราบว่า angular-cli, @ angular / cli และ @ angular / cli @ latest เป็นสอง cli ที่แตกต่างกัน สิ่งที่แก้ได้คือถอนการติดตั้ง cli ทั้งหมดแล้วติดตั้ง angular cli ล่าสุดโดยใช้npm install -g @ angular / cli @ latest

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