Phiên bản Global Angular CLI lớn hơn phiên bản địa phương


353

Khi chạy, ng servetôi nhận được cảnh báo này về phiên bản CLI toàn cầu của tôi lớn hơn phiên bản địa phương. Tôi không nhận thấy bất kỳ vấn đề nào từ cảnh báo này, nhưng tôi đã tự hỏi liệu hai phiên bản có nên đồng bộ hóa không? Ngoài ra, có cần thiết phải có phiên bản địa phương nếu bạn có phiên bản toàn cầu không?

Cảnh báo:

Phiên bản Angular CLI toàn cầu của bạn (1.1.1) lớn hơn phiên bản địa phương của bạn (1.0.6). Phiên bản Angular CLI cục bộ được sử dụng.


43
Bất cứ ai có thể trả lời tại sao chúng ta cần cả địa phương và toàn cầu?
Rap

Câu trả lời:


464

Để trả lời một trong những câu hỏi, cần phải có cả cài đặt toàn cầu và cục bộ để các công cụ hoạt động.

Nếu bạn cố chạy ng servetrên một ứng dụng mà không cài đặt cục bộ CLI (chỉ cài đặt toàn cầu), bạn sẽ gặp lỗi sau.

Bạn phải ở trong một dự án Angular CLI để sử dụng lệnh phục vụ.

Nó cũng sẽ in thông báo này:

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

Chạy npmlệnh đó để cập nhật CLI cục bộ và tránh cảnh báo mà bạn đang nhận.

Câu hỏi khác: Có vẻ như họ không cần phải đồng bộ hóa, nhưng có lẽ tốt nhất là họ nên tránh mọi hành vi bất thường với công cụ hoặc bất kỳ sự không nhất quán nào với mã mà công cụ tạo ra.

Tại sao chúng ta cần cả cài đặt toàn cầu và cài đặt cục bộ?

Cài đặt toàn cầu là cần thiết để bắt đầu một ứng dụng mới. Các ng new <app-name>lệnh được chạy bằng cách sử dụng cài đặt toàn cầu của CLI. Trong thực tế, nếu bạn cố chạy ng newtrong cấu trúc thư mục của ứng dụng CLI hiện có, bạn sẽ gặp phải lỗi đáng yêu này:

Bạn không thể sử dụng newlệnh bên trong dự án Angular CLI.

Lệnh khác có thể được chạy từ toàn cầu cài đặt được ng help, ng get/setvới các --globaltùy chọn, ng version, ng doc, và ng completion.

Cài đặt cục bộ của CLI được sử dụng sau khi ứng dụng được xây dựng. Bằng cách này, khi có phiên bản mới của CLI, bạn có thể cập nhật cài đặt toàn cầu của mình và không ảnh hưởng đến cài đặt cục bộ. Điều này là tốt cho sự ổn định của một dự án. Hầu hết ngcác lệnh chỉ có ý nghĩa với phiên bản cục bộ, như lint, buildserve, v.v.

Theo CLI GitHub readme , để cập nhật CLI, bạn phải cập nhật gói toàn cầu và cục bộ. Tuy nhiên, tôi đã sử dụng CLI trong đó phiên bản toàn cầu và địa phương khác nhau mà không gặp rắc rối nào cho đến nay. Nếu tôi gặp phải một lỗi liên quan đến việc không đồng bộ các phiên bản CLI toàn cầu và cục bộ, tôi sẽ đăng nó ở đây.


không có cách nào thay vì cập nhật cli, ví dụ tôi muốn chạy cài đặt các mô-đun với phiên bản cli hiện có của tôi. hoặc không có cách nào để buộc khi thực thi lệnh sử dụng cli cục bộ chứ không phải toàn cục ??
Mohammed Yassine CHABLI

3
Phiên bản cục bộ của CLI được sử dụng theo mặc định khi chạy các lệnh trong thư mục dự án CLI. Nó nói càng nhiều trong cảnh báo.
R. Richards

nhưng tôi không biết tại sao giải pháp này không hiệu quả với tôi. Điều gì xảy ra nếu tôi đề cập đến trong gói.json của mình dưới dạng giá trị của angular-cli = "^ 1.0.6". công việc đó nhưng vẫn không hiểu những gì xảy ra?
Mohammed Yassine CHABLI

1
npm gỡ cài đặt -g @ angular / cli, npm cache xóa - Force, npm install @ angular / cli
Hesham Yassin

1
@Doug Đúng vậy. Bạn sẽ nhận được cảnh báo khi chạy các lệnh đó cho một dự án có phiên bản CLI thấp hơn, nhưng bạn có thể bỏ qua nó. Tất cả các cảnh báo nói là các phiên bản là khác nhau và CLI cục bộ sẽ được sử dụng.
R. Richards

152

Đây là cách tôi giải quyết vấn đề.

Cài đặt gói CLI Angular mới nhất tại địa phương

Sao chép và chạy các lệnh này

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

1
Tôi sẽ thêm bước 1.5 (nếu bạn muốn) là : rm node_modules/.bin/ng. Làm việc hoàn hảo.
Anh

41

Điều này làm việc cho tôi: nó sẽ cập nhật phiên bản địa phương mới nhất

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

để xác minh phiên bản

  ng --version

Tôi đã chuyển đổi nó thành lệnh bó Windoze cũ: CALL npm gỡ cài đặt --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ CALL npm cài đặt CALL ng --version
Lee H

1
Đã làm các bước của bạn. Đã thử ng serve --openvà nhận "Phiên bản CLI này chỉ tương thích với phiên bản Angular 5.0.0 trở lên. Vui lòng truy cập liên kết bên dưới để tìm hướng dẫn về cách cập nhật Angular. Angular-update-guide.firebas Ứng dụng.com "
Aggie Jon của 87

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

Sau đó, trong gói dự án Địa phương của bạn:

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

Lỗi dưới đây Lỗi: Kết thúc đầu vào JSON không mong muốn Kết thúc đầu vào JSON không mong đợi Các bước trên được trợ giúp từ bài đăng này Không thể cập nhật góc tới phiên bản 6


1
cài đặt npm --save-dev @ angular-devkit / build-angular - đã giúp ng cập nhật @ angular / cli -> đã tạo angular.json và các cập nhật khác.
MPV

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

Cấu hình hiện tại của bạn có thể được cập nhật tự động bằng cách chạy lệnh sau:

ng update @angular/cli

hoặc là:

npm install

8

Trong trường hợp của tôi, tôi chỉ sử dụng lệnh này vào dự án:

ng update @angular/cli

4

Chạy lệnh sau: npm install --save-dev @angular/cli@latest

Sau khi chạy lệnh trên, bàn điều khiển có thể bật thông báo bên dưới

Định dạng cấu hình Angular CLI đã được thay đổi và cấu hình hiện tại của bạn có thể được cập nhật tự động bằng cách chạy lệnh sau: ng update @ angular / cli


4

Tôi không thông thạo tiếng Anh

Nhưng nếu tôi hiểu vấn đề, có phải tại địa phương trong dự án bạn có phiên bản CLI cũ hơn toàn cầu không?

Và bạn có muốn sử dụng cái mới hơn toàn cầu này thay vì cái cũ hơn cục bộ không?

Nếu vậy, một phương thức rất đơn giản là đủ để chạy trong thư mục dự án npm link @angular/cli

nhiều hơn trong chủ đề trên trang: https://docs.npmjs.com/cli/link


2

Trước tiên hãy tìm hiểu phiên bản angular-cli toàn cầu bằng cách chạy

ng --version

Đoạn mã trên sẽ cho biết phiên bản nào là phiên bản angular-cli toàn cầu và cục bộ.

Nếu bạn muốn cli góc toàn cầu và địa phương giống nhau, bạn có thể làm

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

Trong đó 1.7.4 là phiên bản góc cạnh toàn cầu của bạn

Sau đó, nếu bạn chạy ng serve --openmã của bạn nên chạy.


2

Bạn chỉ cần cập nhật AngularCli

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

0

Cập nhật CLI góc cho không gian làm việc (Địa phương)

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

Lưu ý: Đảm bảo cài đặt phiên bản toàn cầu bằng lệnh với '-g' nếu được cài đặt đúng cách.

npm install -g @angular/cli@latest

Chạy lệnh Update để có được danh sách tất cả các phụ thuộc cần thiết để được nâng cấp

ng update

Chạy lệnh cập nhật tiếp theo như bên dưới cho mỗi gói lõi Angular riêng lẻ

ng update @angular/cli @angular/core

Tuy nhiên, tôi đã phải thêm lệnh cờ 'Mạnhforce' và 'Mạnhallow-bẩn' để khắc phục tất cả các sự cố đang chờ xử lý khác.

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


0

Chỉ cần làm những điều này

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

1
Vì câu hỏi này đã gần 3 tuổi và có 14 câu trả lời hiện có, câu trả lời của bạn sẽ có giá trị hơn nhiều nếu bạn giải thích lý do tại sao câu trả lời của bạn không có giá trị trong tất cả các câu trả lời hiện có.
David Buck

-1

cài đặt npm --save-dev @ angular-devkit / build-angular - đã giúp ng cập nhật @ angular / cli -> đã tạo angular.json và các cập nhật khác.

Thu thập các phụ thuộc được cài đặt ... Tìm thấy 58 phụ thuộc.

 ** 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

Loại bỏ các góc hiện tại và cài đặt phiên bản cụ thể.

  1. Kiểm tra phiên bản

    ng

  2. nếu không cần thiết, Gỡ cài đặt Phiên bản

    npm gỡ cài đặt -g @ angular / cli

  3. nếu npm vesrion <5.x

    bộ nhớ cache npm

  4. Xác nhận bộ đệm

    xác minh bộ nhớ cache npm

  5. Cài đặt phiên bản cụ thể

    cài đặt npm -g @ angular / cli @ Major.minor.patch

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.