Angular 6 Migration -.angular-cli.json do angular.json

83

Zaktualizowałem swój projekt do Angular 6 i wszystko poszło dobrze z wyjątkiem konwersji .angular-cli.jsonpliku. Z przewodnika, którego postępowałem, powiedziano, że to automatycznie przekonwertuje.

npm install -g @ angular / cli

npm install @ angular / cli

ng update @ angular / cli

Jednak tak się nie stało, ponieważ nadal mam stary .angular-cli.json

Czy jest sposób, aby to zrobić automatycznie / ręcznie?

Dino
źródło
Musisz zmienić nazwę ręcznie
Pardeep Jain
3
Czy postępowałeś zgodnie z tym przewodnikiem ?
E. Sundin
Nie zmieniaj nazwy pliku. Zostanie usunięty i ponownie utworzony, gdy postępujesz zgodnie z instrukcjami. Jeśli zmienisz jego nazwę, a następnie postępuj zgodnie z instrukcjami, to nie zadziała.
Kriil
Nie miałem szczęścia z odpowiedziami poniżej; dla mnie, określając oba --fromi --tozałatwił sprawę. Trzeba przyznać, że aktualizowałem wiele pakietów w procesie migracji, wiele rzeczy mogło pójść nie tak.
Effeffe

Odpowiedzi:

116

Najprawdopodobniej w jednym z tych poleceń były błędy. U mnie musiałem npm install -g @angular-devkit/corenajpierw uruchomić, a następnie wykonać polecenia:

npm install -g @angular/cli

npm install @angular/cli

Na wyjściu konsoli npm install @angular/clipowinieneś zobaczyć:

================================================================================
The Angular CLI configuration format has been changed, and your existing configuration can
be updated automatically by running the following command:

  ng update @angular/cli
================================================================================

Wtedy oczywiście powinieneś biec, ng update @angular/cliaby zakończyć proces.

Dodatkowe informacje można znaleźć w oficjalnym przewodniku po aktualizacji .

William Hampshire
źródło
2
Wystąpił błąd przy aktualizacji npm install @ angular / cli ng, musiałem go ponownie uruchomić i zadziałało :)
Dino
@WilliamHampshire: Postępowałem zgodnie z tym samym procesem, ale kiedy uruchamiam polecenie npm install @ angular / cli, otrzymałem poniższy błąd. npm WARN @ angular-devkit / schemics @ 0.0.52 wymaga peera @ angular-devkit / core @ 0.0.29, ale żaden nie jest zainstalowany. Musisz samodzielnie zainstalować zależności równorzędne. npm WARN @ schemics / angular @ 0.1.17 wymaga peera @ angular-devkit / core @ 0.0.29, ale żaden nie jest zainstalowany. Zależności peer należy zainstalować samodzielnie. Npm WARN [email protected] wymaga peera ajv@^6.0.0, ale żadna nie jest zainstalowana. Musisz samodzielnie zainstalować zależności równorzędne.
Abhilash Reddy
2
Brakowało mi @angular-devkit/corepakietu, instalacja to załatwiła sprawę.
ColinM,
67

możesz automatycznie zaktualizować istniejący angular-cli.jsonplik do angular.jsonpliku za pomocą poniższego polecenia, pod warunkiem, że używasz narzędzia wiersza poleceń angular cli w wersji 6.xx lub nowszej.

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

W powyższym poleceniu 1.7.4jest poprzednia wersja CLI, której używasz. --migrate-onlyFlagi zapewnia, że będzie ona wykonywać tylko migrację, ale nie zaktualizować zainstalowaną wersję.

czytaj więcej: angular / cli-github

rgantla
źródło
Hej, próbowałem wielu opcji, ale Twoje rozwiązania zadziałały. Mój angular-cli.json jest konwertowany na angular.json. Ale po uruchomieniu aplikacji pojawił się inny błąd: ng serv Error: ERROR in src / app / workflows / workflow-list / workflow-list.component.ts (441,4): błąd TS1128: Oczekiwano deklaracji lub instrukcji.
Abhilash Reddy
Wreszcie to zadziałało! Wypróbowałem tak wiele rozwiązań, w tym wszystkie inne tutaj, a także oficjalny przewodnik aktualizacji kątowej, ale za każdym razem, gdy ng update @angular/cligo uruchamiałem , nigdy nie aktualizowałem angular-cli.json do angular.json. Wreszcie zadziałało! Wielkie dzięki!
Rohan,
41

Spróbuj dwukrotnie uruchomić „ ng update @ angular / cli ”, co spowoduje aktualizację angular-cli.json do angular.json

AKTUALIZACJA:

jeśli otrzymujesz takie błędy:

BŁĄD: Aktualizacja podanej komendy jest nieprawidłowa, dostępne opcje znajdują się w ng-help.

Następnie musisz uruchomić 2 polecenia w następujący sposób

  1. npm install --save-dev @ angular / cli @ latest.
  2. ng update @ angular / cli

spowoduje to automatyczne utworzenie angular.json, usunięcie .angular-cli.json i zaktualizowanie karma.conf.js, src / tsconfig.spec.json, package.json i tslint.json

wprowadź opis obrazu tutaj

T. Shashwat
źródło
21

Próbowałem zaktualizować z 5.2 -> 6.1 i napotkałem problem npm install @angular/cli@6polegający na tym ng update @angular/cli@6, że po uruchomieniu, a następnie , (jak opisano w https://update.angular.io/#5.2:6.1 ), package.jsonbyłem aktualizowany, ale żaden inny pliki takie jak .angular-cli.jsonlubtsconfig.json były, mimo że nie otrzymałem żadnych błędów. Próbowałem wykonać polecenie aktualizacji wiele razy, ale to nie przyniosło efektu.

Skończyło się na uruchomieniu następujących 3 poleceń, które działały dla mnie:

npm install @angular/cli@6
ng update @angular/cli
ng update @angular/core@6

Jedyną prawdziwą zmianą jest drugie polecenie. Dokument mówi, aby uruchomić, ng update @angular/cli@6ale to nie zaktualizowałoby żadnego z plików konfiguracyjnych.

MacK
źródło
3

Aby zaktualizować wersję z 5.2 do 6.0, wykonałem następujące kroki.

  • Zainstaluj Node 8 lub nowszy.
  • yarn global add @ angular / cli.
  • przędza dodaj @ angular / cli.
  • ng update @ angular / cli.
  • ng update @ angular / core.

    Uwaga: jeśli po wykonaniu ng aktualizacji @ kątowe / rdzeń polecenia, nieważne Zakres problem pojawia się, a następnie poniżej, wystarczy wymienić główną wersję w package.json, zostanie ona automatycznie zastąpić niewielkie. Zasoby: Chcesz zaktualizować projekt z Angular v5 do Angular v6

      - npm uninstall -g angular-cli
      - npm cache clean or npm cache verify
      - npm install -g @angular/cli@next
      - then, replace lower versions to higher versions in package.json 
        file.
      - delete node modules folder.
      - run npm/yarn install.
    

Jeśli po instalacji npm pojawi się błąd związany z brakującą ścieżką src / styles, usuń ścieżki podane w pliku angular.json w bloku zasobów z ["src / styles", "src / fonts", "src / images", "src / asset "," src / favicon.ico "] do [" asset "," favicon.ico "].

  • yarn global dodać rxjs-tslint (może być wymagane).
  • rxjs-5-to-6-migrate -p src / tsconfig.app.json (może być wymagane).
  • yarn install @ angular / material @ 6.0.0 (w celu aktualizacji pakietów materiałów).

=> Pamiętaj, że nigdy nie musisz ręcznie zmieniać nazwy angular.cli.json na angular.json !!

** nie wahaj się zapytać, czy pojawią się dalsze pytania.

Simran kaur
źródło
1

Wykonaj następujące kroki:

1) Zaktualizuj swój Angular CLI globalnie i lokalnie (zakładając, że najnowsza wersja to 7)

2) Weź swój stary projekt i uruchom następujące polecenie

  • npm install @ angular / cli
  • ng update @ angular / cli

Po uruchomieniu tego zaktualizowałeś wszystkie swoje pakiety kątowe do najnowszej wersji.

3) Dodaj ten pakiet, ponieważ nadal go brakuje

npm install @ angular-devkit / core --save -dev

4) Utwórz nowy projekt za pomocą ng Serv (najnowsza wersja)

5) Utwórz nowy pusty plik o nazwie angular.json i skopiuj do niego zawartość angular.json z nowego projektu.

6) Zaktualizuj odpowiednio nazwę projektu w angular.json

7) Uruchom instalację npm

8) Uruchom serwis

9) Jesteś teraz gotowy z najnowszą wersją angular.

Wykonałem powyższe kroki, aby przejść z angular2 do angular7.

Sourabh Ranka
źródło
W przypadku, gdy otrzymujesz błąd podczas uruchamiania ng serva, sprawdź błąd, jeśli najprawdopodobniej jest to wpisy w angular.json, zaktualizuj je odpowiednio. Na przykład nazwa projektu,
ścieżki plików
0

W PRZYPADKU:
Nie można znaleźć lokalnego pliku obszaru roboczego („angular.json”).
LUB
Polecenie serv wymaga uruchomienia w projekcie Angular, ale nie można znaleźć definicji projektu.

Upgrade / downgrade do żądanej wersji (próbowałem na przykład Angular 6)

[sudo] npm install -g -f @angular/[email protected]

Zaktualizuj projekt lokalny

ng update @angular/[email protected]

I jesteś gotowy do pracy :)

ng serve
Bogdan Iudean
źródło
0

Musiałem faktycznie zatwierdzić wszystkie zmiany lub przechowywać je, zanim mogłem uruchomić polecenie aktualizacji CLI, jak pokazano na tym zrzucie ekranu.

Zrobiłem te polecenia:

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

ng update@angular/cli

I dokonanie zmian między tymi dwoma. Ng służyć

Tore Aurstad
źródło