Cách nâng cấp Angular CLI lên phiên bản mới nhất


102

Sử dụng ng --versiontôi nhận được:

@ angle / cli: 1.0.0

mà không phải là bản phát hành mới nhất có sẵn.

Vì tôi đã cài đặt Angular CLI trên toàn cầu trên hệ thống của mình, để nâng cấp nó, tôi đã thử:

npm update angular-cli -g

Nhưng nó không hoạt động, bởi vì nó vẫn ở phiên bản 1.0.0.

Câu trả lời:


830

Sau khi đọc một số vấn đề được báo cáo trên kho lưu trữ GitHub, tôi đã tìm ra giải pháp.

Để cập nhật gói angle-cli được cài đặt trên toàn cầu trong hệ thống của bạn, bạn cần chạy:

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

Tùy thuộc vào hệ thống của bạn, bạn có thể cần thêm tiền tố cho các lệnh trên sudo.

Ngoài ra, rất có thể bạn cũng muốn cập nhật phiên bản dự án cục bộ của mình, bởi vì bên trong thư mục dự án của bạn, nó sẽ được chọn với mức độ ưu tiên cao hơn so với phiên bản toàn cầu:

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

cảm ơn Grizzm0 đã chỉ ra điều này trên GitHub .

Sau khi cập nhật CLI, có thể bạn cũng muốn cập nhật phiên bản Angular của mình .

Lưu ý : nếu bạn đang cập nhật lên Angular CLI 6+ từ phiên bản cũ hơn, bạn có thể cần đọc phần này .

Chỉnh sửa : Ngoài ra, nếu bạn vẫn còn trên một phiên bản 1.x của cli, bạn cần phải chuyển đổi của bạn angular-cli.jsonđể angular.jsonmà bạn có thể làm với các lệnh sau:

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

(kiểm tra điều này để biết thêm chi tiết).


3
Cảnh báo giả mạo: Bạn có thể tìm thêm chi tiết về những thay đổi giữa các phiên bản trong tab Bản phát hành trên GitHub. Liên kết: github.com/angular/angular-cli/releases
Stuti Verma

14
Cập nhật năm 2017 (npm @ 5): nếu bạn thực sự cần làm sạch bộ nhớ cache của mình: "npm cache clean --force"
Neyt

2
tại sao phải gỡ cài đặt angle-cli mà không phải toàn bộ @ angle / cli?
YASH DAVE

4
Chạy lệnh npm cache clean ném lỗi 'Kể từ npm @ 5, npm cache tự chữa khỏi các sự cố hỏng và dữ liệu trích xuất từ ​​bộ nhớ cache được đảm bảo là hợp lệ. Nếu bạn muốn đảm bảo mọi thứ đều nhất quán, hãy sử dụng 'xác minh bộ nhớ cache npm' để thay thế. ' "nếu bạn muốn ép buộc, bạn có thể thêm --force
Pushkal Boganatham

1
@PushkalBoganatham như @neyt đã nêu, bạn cần sử dụng --forcecờ
svict 4

149

ng6 + -> 7.0

Cập nhật RxJS (phụ thuộc vào RxJS 6.3)

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

Tẩy rxjs-compat

Sau đó cập nhật các gói cốt lõi và Cli:

ng update @angular/cli @angular/core

(Tùy chọn: cập nhật Node.js lên phiên bản 10 được hỗ trợ trong NG7)

ng6 + (Cli 6.0+) : tính năng các lệnh đơn giản hóa

Đầu tiên, hãy cập nhật Cli của bạn

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

Sau đó, cập nhật các gói cốt lõi của bạn

ng update @angular/core

Nếu bạn sử dụng RxJS, hãy chạy

ng update rxjs

Nó sẽ cập nhật RxJS lên phiên bản 6 và cài đặt rxjs-compatgói dưới mui xe.

Nếu bạn gặp lỗi bản dựng, hãy thử cài đặt thủ công:

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

Cuối cùng, hãy kiểm tra phiên bản của bạn

ng v

Lưu ý về bản dựng sản xuất:

ng6 không còn sử dụng intltrongpolyfills.ts

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

ng5 + (Cli 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

Ghi chú:

  1. Phiên bản Typecript được hỗ trợ cho Cli 1.6 kể từ khi viết bài này lên đến 2.5.3.
  2. Sử dụng @next sẽ cập nhật gói này lên phiên bản beta, nếu có. Sử dụng @latest để tải phiên bản không phải beta mới nhất.

Sau khi cập nhật cả gói cục bộ và toàn cầu, hãy xóa bộ nhớ cache để tránh lỗi:

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

Dưới đây là các tài liệu tham khảo chính thức:

  1. Cập nhật Cli
  2. Cập nhật gói lõi gói lõi .

4
npm cache clean --force Thực sự đã giúp tôi
Pini Cheyni

1
Tại sao oh tại sao phần này không có trong ghi chú phát hành!
Drenai

bạn có thể vui lòng xác nhận những gì bạn đã nói về việc RxJS 6 không được dùng nữa không. Ở khắp mọi nơi tôi nhìn nó xuất hiện v6 đó là phiên bản ổn định mới nhất github.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough

1
@JoeyGough bắt hay lắm! Ng7 phụ thuộc vào rxjs 6.3. Cám ơn bạn đã góp ý. ref: github.com/angular/angular/blob/master/…
Pageii Studio

107

bạn chỉ có thể sử dụng

npm install -g angular-cli - nếu đây là lần đầu tiên của bạn

npm install -g @angular/cli@latest - nếu bạn đã cài đặt, hãy cập nhật


37

Lệnh mạnh mẽ cài đặt và thay thế gói cuối cùng.

Tôi đã có một vấn đề tương tự. Tôi sửa nó rồi.

 npm install -g @angular/cli@latest

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

nhập mô tả hình ảnh ở đây


điều này sẽ làm việc cho một CLI góc địa phương, kiểm tra câu trả lời của tôi để uprade một toàn cầu
Francesco Borzi

đã nâng cấp cli toàn cầu của tôi
Rahmathullah M


22

Cách tiếp cận sau đây phù hợp với tôi:

npm uninstall -g @angular/cli

sau đó

npm cache verify

sau đó

npm install -g @angular/cli@latest

Tôi làm việc trên Windows 10, đôi khi tôi đã phải sử dụng: npm cache clean --forcelà tốt. Bạn không cần phải làm gì nếu bạn không gặp bất kỳ sự cố nào trong quá trình cài đặt.


2
Bạn không cần phải chỉ định @latest, vì mới nhất là mặc định.
Ambroise Rabier

Nếu giải pháp này không hiệu quả với bạn: stackoverflow.com/a/58678941/8718377
veben

17

Nếu bạn gặp bất kỳ khó khăn nào khi quản lý phiên bản CLI toàn cầu của mình , tốt hơn nên sử dụng NVM: MAC , Windows .

Để cập nhật CLI cục bộ trong dự án Angular của bạn, hãy làm theo các bước sau:

Bắt đầu từ CLI v6, bạn chỉ có thể chạy ng updateđể tự động cập nhật các phần phụ thuộc của mình lên phiên bản mới.

ng update @angular/cli

Với ng updateđôi khi bạn có thể muốn thêm --forcecờ.

Bạn cũng có thể vượt qua --allcờ để nâng cấp tất cả các gói cùng một lúc.

ng update --all --force

Nếu bạn chỉ muốn di chuyển CLI chỉ cần chạy điều này:

ng update @angular/cli --migrateOnly

Bạn cũng có thể chuyển cờ --from=from- phiên bản để di chuyển từ đó, ví dụ --from=1.7.4. Cờ này chỉ khả dụng với một gói duy nhất đang được cập nhật và chỉ khi di chuyển.

Sau khi cập nhật xong, hãy đảm bảo rằng phiên bản sắp chữ bạn đã cài đặt được hỗ trợ bởi phiên bản góc cạnh hiện tại của bạn, nếu không, bạn có thể cần phải hạ cấp phiên bản sắp chữ. Cũng nên nhớ rằng thường phiên bản mới nhất của angle sẽ không hỗ trợ phiên bản mới nhất của bảng sắp chữ.

Kiểm tra Angular CLI / Angular / NodeJS / Typescriptcác phiên bản tương thích tại đây

Ngoài ra, hãy xem hướng dẫn này Cập nhật các dự án Angular của bạnupdate.angular.io


CÂU TRẢ LỜI CŨ:
Tất cả những gì bạn cần làm là khác biệt với angle-cli-diff và áp dụng các thay đổi trong dự án hiện tại của bạn.

Đây là các bước:

  1. Giả sử bạn đi từ 1,4. đến 1.5 thì bạn thực hiện https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. bấm vào File changedtab
  3. Áp dụng các thay đổi cho dự án hiện tại của bạn.
  4. npm install / yarn
  5. Kiểm tra tất cả npm scripts( thêm chi tiết tại đây: https://stackoverflow.com/a/45431592/415078 )

14

Ngoài câu trả lời @ShinDarth .

Tôi đã làm những gì anh ấy nói nhưng gói của tôi không cập nhật phiên bản góc cạnh và tôi biết rằng bài đăng này là về angular-cli, nhưng tôi nghĩ rằng điều này cũng có thể giúp ích.

  • vì vậy sau khi thực hiện những gì @ShinDarth đã nói ở trên, để sửa phiên bản góc cạnh của tôi, tôi phải tạo một dự án mới với -ng new projectnamegói đã tạo.
  • sao chép gói mới, sau đó dán gói mới vào tất cả các gói dự án cần cập nhật (nhớ thêm các phần phụ thuộc bạn có và thay đổi tên trên dòng đầu tiên) hoặc bạn có thể chỉ cần thay đổi các phiên bản thủ công mà không cần sao chép và dán.
  • sau đó chạy -npm install.

Bây giờ của tôi ng serve đang hoạt động trở lại, có lẽ có một cách tốt hơn để làm tất cả những điều đó, nếu ai đó biết, xin vui lòng chia sẻ, vì đây là một khó khăn để làm với tất cả các dự án cần cập nhật.


trông giống như một bổ sung cho câu trả lời của tôi hơn là một câu trả lời, vì vậy có thể bạn có thể di chuyển nó dưới dạng nhận xét bên dưới câu trả lời của tôi?
Francesco Borzi

7
sry, bạn đúng nhưng tôi cần 50 người nổi tiếng để đưa ra nhận xét cho câu trả lời của bạn.
Leonardo Souza Paiva

9

Để cập nhật Angular CLI lên phiên bản mới, bạn phải cập nhật cả gói toàn cầu và gói cục bộ của dự án.

Gói toàn cầu:

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

Gói dự án địa phương:

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

Nguồn: Github


3

Trong trường hợp của tôi, tôi đã cài đặt cục bộ angle-cli bằng cách sử dụng npm install --save-dev angle-cli. Vì vậy, khi tôi sử dụng lệnh npm install -g @ angle / cli, nó tạo ra lỗi nói rằng "Phiên bản Angular CLI toàn cầu của bạn (1.7.3) lớn hơn phiên bản cục bộ của bạn (1.4.9)" . Xin lưu ý rằng angle-cli, @ angle / cli và @ angle / cli @ mới nhất là hai cli khác nhau. Giải quyết vấn đề này là gỡ cài đặt tất cả cli và sau đó cài đặt cli góc mới nhất bằng cách sử dụng npm install -g @ angle / cli @ mới nhất

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.