Кутова 6 Міграція -.angular-cli.json до angular.json


83

Я модернізував свій проект до Angular 6, і все пройшло нормально, крім перетворення .angular-cli.jsonфайлу. З керівництва, за яким я слідував, було сказано, що це перетворить його автоматично.

npm встановити -g @ angular / cli

npm встановити @ angular / cli

оновлення @ angular / cli

Однак це було не так, оскільки я досі маю старе .angular-cli.json

Чи є спосіб зробити це автоматично / вручну?


Вам потрібно перейменувати його вручну
Pardeep Jain

3
Чи дотримувались ви цього посібника ?
Е. Сундін

Не перейменовуйте файл. Він видаляється та відтворюється, коли ви слідуєте інструкціям. Якщо ви перейменуєте його, то слідуйте керівництву, це не буде працювати.
Kriil

Мені не пощастило з відповідями нижче; для мене, вказавши обидва --fromі --toзробив трюк. Слід визнати, що я оновлював багато пакетів у процесі міграції, багато речей могло піти не так.
дія

Відповіді:


116

Швидше за все, в одній із цих команд були помилки. Для мене спочатку потрібно було запустити, npm install -g @angular-devkit/coreа потім виконати команди:

npm install -g @angular/cli

npm install @angular/cli

У виведенні консолі npm install @angular/cliви повинні побачити:

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

Тоді вам, очевидно, слід бігти, ng update @angular/cliщоб закінчити процес.

Додаткові відомості див. В Офіційному посібнику з оновлення .


2
Під час оновлення npm install @ angular / cli ng сталася помилка, мені довелося її повторно запустити, і вона спрацювала :)
Діно,

@WilliamHampshire: Я дотримувався того ж процесу, але коли я запустив команду npm install @ angular / cli, я отримав нижченаведену помилку. npm ПОПЕРЕДЖЕННЯ @ angular-devkit / schematics @ 0.0.52 вимагає однорангового рівня @ angular-devkit / core @ 0.0.29, але жодного не встановлено. Ви повинні встановити залежності однолітків самостійно. npm ПОПЕРЕДЖЕННЯ @ schematics / angular @ 0.1.17 вимагає однорангового рівня @ angular-devkit / core @ 0.0.29, але жодного не встановлено. Ви повинні встановити залежності однолітків. Npm ПОПЕРЕДЖЕННЯ ajv-keywords@3.2.0 вимагає однорангової програми ajv@^6.0.0, але жодної не встановлено. Ви повинні встановити залежності однолітків самостійно.
Абхілаш Редді,

2
Мені не вистачало @angular-devkit/coreпакету, встановлення якого зробило трюк.
ColinM

67

Ви можете автоматично оновити наявний angular-cli.jsonфайл до angular.jsonфайлу за допомогою наведеної нижче команди за умови, що ви перебуваєте у версії v6.xx або новішої за допомогою інструмента командного рядка angular cli.

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

У наведеній вище команді 1.7.4наведено попередню версію cli, яку ви використовували. --migrate-onlyПрапор гарантує , що він буде виконувати тільки міграцію , але не оновлює встановлену версію.

читати далі: angular / cli-github


Гей, я спробував кілька варіантів, але ваші рішення спрацювали. Мій angular-cli.json перетворюється на angular.json. Але при запуску додатка я отримав ще одну помилку: ng serve Error: ERROR in src / app / workflows / workflow-list / workflow-list.component.ts (441,4): помилка TS1128: Очікується декларація чи заява.
Абхілаш Редді,

Нарешті, це те, що мені вдалося! Я спробував так багато рішень, включаючи всі інші тут, а також офіційний посібник з кутового оновлення, але коли б я не запускав, ng update @angular/cliвін ніколи не оновлював angular-cli.json до angular.json. Нарешті, це спрацювало! Дуже дякую!
Рохан,

41

Спробуйте запустити " ng update @ angular / cli angular " двічі, це оновить angular-cli.json до angular.json

ОНОВЛЕННЯ:

якщо з’являються такі помилки:

ПОМИЛКА: Вказане оновлення команди недійсне. Доступні варіанти див. У ng-help.

тоді вам потрібно виконати 2 команди наступним чином

  1. npm install --save-dev @ angular / cli @ latest.
  2. оновлення @ angular / cli

це автоматично створить angular.json, видалить .angular-cli.json та оновить karma.conf.js, src / tsconfig.spec.json, package.json та tslint.json

введіть тут опис зображення


21

Я намагався оновити з 5.2 -> 6.1 і зіткнувся з проблемою, коли після запуску, npm install @angular/cli@6а потім ng update @angular/cli@6, (як описано https://update.angular.io/#5.2:6.1 ) мій package.jsonфайл оновлювався, але жоден з інших файли, такі як .angular-cli.jsonабоtsconfig.json були, хоча я не отримував помилок. Я намагався виконати команду оновлення кілька разів, але це не мало ніякого ефекту.

У підсумку я запустив такі 3 команди, які працювали для мене:

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

Єдиною реальною зміною є друга команда. У документі сказано запустити, ng update @angular/cli@6але це не призведе до оновлення жодного конфігураційного файлу.


3

Для оновлення версії з 5.2 до 6.0 я виконав наступні кроки.

  • Встановіть Node 8 або вище.
  • пряжа глобальна add @ angular / cli.
  • пряжа додати @ angular / cli.
  • оновлення @ angular / cli.
  • оновлення @ angular / core.

    Примітка: якщо після виконання нг поновлення @ Кутова / ядра команди, неприпустимий діапазон виникає питання, а потім слід нижче, просто замінити основну версію в package.json, він буде автоматично замінювати неповнолітній. Ресурс: Хочете оновити проект з Angular v5 до 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.
    

Після встановлення npm , якщо ви отримуєте помилку відсутнього шляху src / styles, видаліть шляхи, вказані у файлі angular.json під блоком активів, із ["src / styles", "src / fonts", "src / images", "src / активи "," src / favicon.ico "] до [" активи "," favicon.ico "].

  • yarn global add rxjs-tslint (може знадобитися).
  • rxjs-5-to-6-migrate -p src / tsconfig.app.json (може знадобитися).
  • yarn install @ angular / material @ 6.0.0 (для оновлення пакунків матеріалів).

=> Зверніть увагу, вам ніколи не потрібно перейменовувати angular.cli.json в angular.json вручну !!

** сміливо запитуйте, чи не виникають додаткові запитання.


1

Будь ласка, виконайте такі дії:

1) Оновіть свій Angular CLI глобально та локально (припускаючи, що остання версія - 7)

2) Візьміть свій старий проект і запустіть наступну команду

  • npm встановити @ angular / cli
  • оновлення @ angular / cli

Після запуску ви оновили всі кутові пакети до останньої версії.

3) Додайте цей пакет, оскільки його досі немає

npm встановити @ angular-devkit / core --save -dev

4) створити новий проект за допомогою ng serve (остання версія)

5) Створіть новий порожній файл з ім'ям angular.json і скопіюйте до нього вміст angular.json з нового проекту.

6) Оновіть назву проекту відповідно до angular.json

7) Запустіть npm install

8) Виконати подачу

9) Ви готові до останньої версії angular.

Я дотримувався наведених вище кроків, щоб перейти від angular2 до angular7.


Якщо у вас виникає помилка при запуску ng serve, перевірте помилку, чи це, швидше за все, записи в angular.json, оновіть їх відповідно. Для екс - назви проекту, шляхів до файлів тощо
Sourabh Ranka

0

НА ВИПАДОК:
Не вдалося знайти файл локальної робочої області ('angular.json').
АБО
команда serve вимагає запуску в проекті Angular, але визначення проекту знайти не вдалося.

Оновлення / зниження до бажаної версії (я спробував Angular 6, наприклад)

[sudo] npm install -g -f @angular/cli@6.1.4

Оновіть локальний проект

ng update @angular/cli@6.1.4

І вам добре йти :)

ng serve

0

Мені довелося здійснити всі зміни або сховати їх, перш ніж я міг запустити команду для оновлення кліпу, як показано на цьому знімку екрана.

Я виконав ці команди:

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

ng update@angular/cli

І здійснення змін між цими двома. Нг подавати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.