Wersja Global Angular CLI większa niż wersja lokalna

353

Podczas działania ng servepojawia się ostrzeżenie o tym, że moja globalna wersja CLI jest większa niż moja wersja lokalna. Nie widzę żadnych problemów z tym ostrzeżeniem, ale zastanawiałem się, czy te dwie wersje powinny być zsynchronizowane? Ponadto, czy musisz mieć wersję lokalną, jeśli masz wersję globalną?

Ostrzeżenie:

Twoja globalna wersja Angular CLI (1.1.1) jest większa niż wersja lokalna (1.0.6). Używana jest lokalna wersja Angular CLI.

Bogaty
źródło
43
Czy ktoś może odpowiedzieć, dlaczego potrzebujemy zarówno lokalnego, jak i globalnego?
Rap,

Odpowiedzi:

464

Aby odpowiedzieć na jedno z pytań, konieczna jest globalna i lokalna instalacja narzędzi.

Jeśli spróbujesz uruchomić ng serveaplikację bez lokalnej instalacji CLI (tylko instalacja globalna), pojawi się następujący błąd.

Musisz być w projekcie Angular CLI, aby użyć polecenia serv.

Wydrukuje również tę wiadomość:

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

Uruchom to npmpolecenie, aby zaktualizować CLI lokalnie i unikaj ostrzeżeń.

Inne pytanie: wygląda na to, że nie muszą być zsynchronizowane, ale prawdopodobnie najlepiej, aby były w celu uniknięcia jakichkolwiek nietypowych zachowań w narzędziu lub jakichkolwiek niezgodności z kodem generowanym przez narzędzie.

Dlaczego potrzebujemy zarówno instalacji globalnej, jak i instalacji lokalnej?

Instalacja globalna jest potrzebna do uruchomienia nowej aplikacji. ng new <app-name>Polecenie jest uruchamiane za pomocą globalnej instalację CLI. W rzeczywistości, jeśli spróbujesz uruchomić ng neww strukturze folderów istniejącej aplikacji CLI, pojawi się ten piękny błąd:

Nie można użyć newpolecenia w projekcie Angular CLI.

Inne polecenia, które mogą być uruchamiane z globalnym zainstalować są ng help, ng get/setz --globalopcją, ng version, ng doc, i ng completion.

Lokalna instalacja interfejsu CLI jest używana po skompilowaniu aplikacji. W ten sposób, gdy dostępne będą nowe wersje interfejsu CLI, możesz zaktualizować swoją instalację globalną i nie wpływać na instalację lokalną. Jest to dobre dla stabilności projektu. Większość ngpoleceń sens tylko z lokalnej wersji, jak lint, buildi serve, etc.

Zgodnie z plikiem Readme GitHub interfejsu CLI , aby zaktualizować interfejs CLI, należy zaktualizować pakiet globalny i lokalny. Korzystałem jednak z interfejsu CLI, w którym wersja globalna i lokalna różnią się do tej pory bez żadnych problemów. Jeśli kiedykolwiek napotkam błąd związany z brakiem synchronizacji globalnej i lokalnej wersji interfejsu CLI, opublikuję to tutaj.

R. Richards
źródło
nie ma sposobu zamiast aktualizacji cli, na przykład chcę uruchomić instalowanie modułów z moją istniejącą wersją cli. lub nie ma sposobu na wymuszenie przy wykonywaniu polecenia użycia lokalnego cli, a nie globalnego?
Mohammed Yassine CHABLI
3
Lokalna wersja interfejsu CLI jest domyślnie używana podczas uruchamiania poleceń w katalogu projektu CLI. Tak mówi ostrzeżenie.
R. Richards,
ale nie wiem, dlaczego to rozwiązanie nie działa dla mnie. co jeśli podam w pakiecie.json jako wartość mojego angular-cli = "^ 1.0.6". ta praca, ale wciąż nie rozumiesz, co się stało?
Mohammed Yassine CHABLI
1
odinstaluj npm -g @ angular / cli, wyczyść pamięć podręczną npm --force, zainstaluj npm @ angular / cli
Hesham Yassin
1
@Doug To prawda. Podczas uruchamiania tych poleceń dla projektu z niższą wersją interfejsu CLI pojawi się ostrzeżenie, ale można je zignorować. Wszystkie ostrzeżenia mówią, że wersje są różne i zostanie użyty lokalny interfejs CLI.
R. Richards,
152

W ten sposób rozwiązałem problem.

Zainstaluj najnowszy pakiet Angular CLI lokalnie

Skopiuj i uruchom te polecenia

ng --version
npm install --save-dev @angular/cli@latest
ng --version
BehrouzMoslem
źródło
1
Dodam, że etap 1.5 (jeśli będzie) to: rm node_modules/.bin/ng. Działał idealnie.
bretoński
41

To działa dla mnie: zaktualizuje wersję lokalną do najnowszej

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

zweryfikować wersję

  ng --version
hoogw
źródło
Przekształciłem to w wsadowe polecenie Windoze old-skool: CALL odinstaluj npm --save-dev @ angular / cli CALL npm install --save-dev @ angular / cli @ najnowsze CALL npm zainstaluj CALL ng --wersja
Lee H
1
Czy twoje kroki. Próbowałem ng serve --openi dostałem „Ta wersja CLI jest kompatybilna tylko z wersją Angular 5.0.0 lub wyższą. Odwiedź poniższy link, aby znaleźć instrukcje dotyczące aktualizacji Angular. Angular-update-guide.firebaseapp.com
Aggie Jon z 87
17
npm uninstall -g @angular/cli
npm cache verify
npm install -g @angular/cli@latest

Następnie w pakiecie projektu lokalnego:

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

Występował błąd Błąd: Nieoczekiwany koniec wejścia JSON Nieoczekiwany koniec wejścia JSON Powyższe kroki pomogły w tym wpisie Nie można zaktualizować kątowej do wersji 6

Saurabh
źródło
1
npm install --save-dev @ angular-devkit / build-angular - pomógł zaktualizować @ angular / cli -> stworzył angular.json i inne aktualizacje.
MPV
15
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest

Istniejącą konfigurację można zaktualizować automatycznie, uruchamiając następujące polecenie:

ng update @angular/cli

lub:

npm install
Montasir Mirghani
źródło
8

W moim przypadku użyłem tego polecenia do projektu:

ng update @angular/cli
Akostha
źródło
4

Uruchom następujące polecenie: npm install --save-dev @angular/cli@latest

Po uruchomieniu powyższego polecenia konsola może wyskoczyć poniższy komunikat

Format konfiguracji Angular CLI został zmieniony, a istniejącą konfigurację można zaktualizować automatycznie, uruchamiając następującą komendę: ng update @ angular / cli

Tahir77667
źródło
4

Nie mówię biegle po angielsku

ale jeśli rozumiem problem, to czy lokalnie w projekcie masz starszą wersję interfejsu CLI niż globalnie?

Czy chciałbyś użyć tego globalnego nowszego zamiast lokalnego starszego?

Jeśli tak, wystarczy bardzo prosta metoda do uruchomienia w katalogu projektu npm link @angular/cli

więcej w temacie na stronie: https://docs.npmjs.com/cli/link

CisSasGot
źródło
2

Najpierw sprawdź globalną wersję angular-cli, uruchamiając

ng --version

Powyższy kod pokazuje, która wersja jest globalną i lokalną wersją angli-cli.

Jeśli chcesz, aby globalny i lokalny kątowy cli był taki sam, możesz to zrobić

npm install --save-dev @angular/[email protected]

gdzie 1.7.4 jest Twoją globalną wersją angli-cli

Jeśli uruchomisz, ng serve --opentwój kod powinien się uruchomić.

Vikas etagi
źródło
2

Musisz tylko zaktualizować AngularCli

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

źródło
0

Zaktualizuj Angular CLI dla obszaru roboczego (lokalny)

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

Uwaga: Upewnij się, że zainstalujesz wersję globalną za pomocą polecenia z „-g”, jeśli zostało poprawnie zainstalowane.

npm install -g @angular/cli@latest

Uruchom polecenie Aktualizuj, aby uzyskać listę wszystkich zależności wymaganych do aktualizacji

ng update

Następnie uruchom polecenie aktualizacji jak poniżej dla każdego pakietu podstawowego Angular

ng update @angular/cli @angular/core

Musiałem jednak dodać dodatkowo polecenia „–force” i „–allow-dirty”, aby naprawić wszystkie pozostałe problemy.

ng update @angular/cli @angular/core --allow-dirty --force
SIKANDAR MOHAMMAD
źródło
0

to powinno rozwiązać problem:

ng update @angular/cli @angular/core
użytkownik5919789
źródło
0

Po prostu rób te rzeczy

npm install --save-dev @angular/cli@latest
npm audit fix
npm audit fix --force
tusher Mahmud
źródło
1
Ponieważ to pytanie ma prawie 3 lata i zawiera 14 istniejących odpowiedzi, odpowiedź byłaby o wiele bardziej cenna, gdybyś wyjaśnił, dlaczego twoja odpowiedź ma wartość, której nie udzieliły wszystkie istniejące odpowiedzi.
David Buck
-1

npm install --save-dev @ angular-devkit / build-angular - pomógł zaktualizować @ angular / cli -> stworzył angular.json i inne aktualizacje.

Zbieranie zainstalowanych zależności ... Znaleziono 58 zależności.

 ** 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/[email protected] requires a peer of zone.js@^0.8.4 but none is installed. You must install peer dependencies yourself.
MPV
źródło
-1

Usuń bieżący kąt i zainstaluj konkretną wersję.

  1. Sprawdź wersję

    ng --version

  2. jeśli nie jest to wymagane, odinstaluj wersję

    npm odinstaluj -g @ angular / cli

  3. jeśli npm vesrion <5.x

    czyszczenie pamięci podręcznej npm

  4. Sprawdź pamięć podręczną

    weryfikacja pamięci podręcznej npm

  5. Zainstaluj konkretną wersję

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

Amit Kumar
źródło