Как обновить Angular CLI до последней версии
С помощью ng --version
Я получил:
@ angular / cli: 1.0.0
которая не является последней доступной версией.
Поскольку в моей системе глобально установлен Angular CLI, для его обновления я попытался:
npm update angular-cli -g
Но это не работает, потому что он остается до версии 1.0.0.
10 ответов
Прочитав некоторые проблемы, о которых сообщалось в репозитории GitHub, я нашел решение.
Чтобы обновить глобально установленный в вашей системе пакет angular-cli, вам необходимо запустить:
npm uninstall -g angular-cli
npm cache clean or npm cache verify (if npm > 5)
npm install -g @angular/cli@latest
В зависимости от вашей системы, вам может потребоваться добавить префикс вышеупомянутых команд sudo
,
Кроме того, скорее всего, вы также хотите обновить локальную версию проекта, потому что внутри вашей директории проекта она будет выбрана с более высоким приоритетом, чем глобальная:
rm -rf node_modules
npm uninstall --save-dev angular-cli
npm install --save-dev @angular/cli@latest
npm install
спасибо grizzm0 за указание этого на GitHub.
После обновления CLI вы, вероятно, захотите обновить и версию Angular.
Примечание: если вы обновляете до Angular CLI 6+ от более старой версии, вам может потребоваться прочитать это.
Изменить: Кроме того, если вы все еще были на 1.x версии Cli, вам необходимо преобразовать angular-cli.json
в angular.json
, что вы можете сделать с помощью следующей команды:
ng update @angular/cli --from=1.7.4 --migrate-only
(проверьте это для более подробной информации).
Вы можете просто использовать
npm install -g angular-cli
- если это ваш первый раз
npm install -g @angular/cli@latest
- если вы уже установлены, так что для обновления
нг6+ -> 7,0
Обновление RxJS (зависит от RxJS 6.3)
npm install -g rxjs-tslint
rxjs-5-to-6-migrate -p src/tsconfig.app.json
Удалить rxjs-compat
Затем обновите основные пакеты и Cli:
ng update @angular/cli @angular/core
(Необязательно: обновите Node.js до версии 10, которая поддерживается в NG7)
ng6 + (Cli 6.0+): функции упрощенных команд
Во-первых, обновите свой Cli
npm install -g @angular/cli
npm install @angular/cli
ng update @angular/cli
Затем обновите ваши основные пакеты
ng update @angular/core
Если вы используете RxJS, запустите
ng update rxjs
Он обновит RxJS до версии 6 и установит rxjs-compat
пакет под капотом.
Если вы столкнулись с ошибками сборки, попробуйте установить вручную:
npm i rxjs-compat
npm i @angular-devkit/build-angular
Наконец, проверьте свою версию
ng v
Примечание к сборке:
ng6 больше не использует intl
в polyfills.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
Замечания:
- Поддерживаемая версия Typescript для Cli 1.6 на момент написания статьи до 2.5.3.
- Использование @next обновляет пакет до бета-версии, если доступно. Используйте @latest, чтобы получить последнюю не бета-версию.
После обновления как глобального, так и локального пакета очистите кеш, чтобы избежать ошибок:
npm cache verify (recommended)
npm cache clean (for older npm versions)
Вот официальные ссылки:
- Обновление Кли
- Обновление основных пакетов.
Мощная команда устанавливает и заменяет последний пакет.
У меня была похожая проблема. Я починил это.
npm install -g @angular/cli@latest
а также
npm install --save-dev @angular/cli@latest
У меня сработал следующий подход:
npm uninstall -g @angular/cli
затем
npm cache verify
затем
npm install -g @angular/cli@latest
Я работаю на Windows 10, иногда мне приходилось использовать: npm cache clean --force
также. Вам не нужно делать, если у вас нет проблем во время установки.
ОБНОВИТЬ:
Начиная с CLI v6 вы можете просто запустить ng update
чтобы ваши зависимости обновлялись автоматически до новой версии.
С
ng update
иногда вы можете добавить--force
флаг. Если вы сделаете это, убедитесь, что версия машинописного текста, который вы установили таким образом, поддерживается вашей текущей угловой версией, в противном случае вам может потребоваться понизить версию машинописного текста.
Также ознакомьтесь с этим руководством Обновление ваших Angular проектов
Все, что вам нужно сделать, это сравнить с angular-cli-diff и применить изменения в вашем текущем проекте.
Вот шаги:
- Скажем, вы идете от 1.4. до 1,5, то вы делаете https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
- нажмите на
File changed
табуляция - Примените изменения к вашему текущему проекту.
npm install
/yarn
- Проверить все
npm scripts
(подробнее здесь: /questions/17459891/obnovite-angular-cli-v-suschestvuyuschem-proekte/17459903#17459903)
В дополнение к ответу @ShinDarth.
Я сделал то, что он сказал, но мой пакет не обновил угловую версию, и я знаю, что этот пост о angular-cli
Но я думаю, что это тоже может помочь.
- так что после того, как @ShinDarth сказал выше, чтобы исправить мою угловую версию, мне пришлось создать новый проект с
-ng new projectname
это создало пакет. - скопируйте новый пакет, затем вставьте новый пакет во все пакеты проектов, нуждающиеся в обновлении (не забудьте добавить имеющиеся зависимости и изменить имя в первой строке), или вы можете просто изменить версии вручную без копирования и вставки.
- затем беги
-npm install
,
Теперь мой ng serve
снова работает, может быть, есть лучший способ сделать все это, если кто-то знает, пожалуйста, поделитесь, потому что это боль делать со всеми проектами, которые нуждаются в обновлении.
В моем случае я установил angular-cli локально, используя npm install --save-dev angular-cli. Поэтому, когда я использую команду npm install -g @angular/cli, выдается сообщение о том, что "ваша глобальная версия Angular CLI (1.7.3) больше вашей локальной версии (1.4.9)". Обратите внимание, что angular-cli, @ angular / cli и @angular/cli@latest являются двумя различными типами cli. Решить это - удалить все клиентские системы, а затем установить последнюю версию angular cli с помощью npm install -g @angular/cli@latest
Чтобы обновить Angular CLI до новой версии, вы должны обновить как глобальный пакет, так и локальный пакет вашего проекта.
Глобальный пакет:
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
Локальный проектный пакет:
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
Источник: Github