Angular CLIを最新バージョンにアップグレードする方法


102

ng --version私が得た使用:

@ angular / cli:1.0.0

これは入手可能な最新リリースではありません。

Angular CLIがシステムにグローバルにインストールされているため、アップグレードするために次のことを試しました。

npm update angular-cli -g

ただし、バージョン1.0.0のままなので、機能しません。

回答:


830

GitHubリポジトリで報告されたいくつかの問題を読んだ後、私は解決策を見つけました。

システムにグローバルにインストールされているangular-cliパッケージを更新するには、以下を実行する必要があります。

npm uninstall -g @angular-cli
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

GitHubでこれを指摘してくれたgrizzm0に感謝します

CLIを更新した後、Angularのバージョン更新する必要があります

:古いバージョンからAngular CLI 6以降に更新する場合は、これを読む必要があるかもしれません。

編集:あなたは、CLIのバージョン1.xに残っていた場合はまた、あなたは変換する必要があるangular-cli.jsonangular.json次のコマンドを使用していますが、これは:

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

(詳細はこちらをご覧ください)。


3
Pedanticアラート:バージョン間の変更の詳細については、GitHubの[リリース]タブをご覧ください。リンク:github.com/angular/angular-cli/releases
Stuti Verma

14
2017年の更新(npm @ 5):本当にキャッシュをクリーンアップする必要がある場合: "npm cache clean --force"
Neyt

2
@ angular / cli全体ではなく、なぜangular-cliをアンインストールするのですか?
YASH DAVE 2017

4
コマンドnpm cache cleanを実行するとエラーがスローされる 'npm @ 5以降、npmキャッシュは破損の問題から自動的に修復され、キャッシュから抽出されたデータは有効であることが保証されています。すべてが一貫していることを確認したい場合は、代わりに「npmキャッシュ検証」を使用してください。「強制したい場合は、
-forceを

1
@PushkalBoganatham @neytが述べたように、--forceフラグを使用する必要があります
svict4

149

ng6 +-> 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をNG7でサポートされているバージョン10に更新します)

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はintlpolyfills.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

注意:

  1. 執筆時点でサポートされているCli 1.6のTypescriptバージョンは2.5.3までです。
  2. @nextを使用すると、パッケージがベータ版にアップデートされます(可能な場合)。@latestを使用して、ベータ版以外の最新バージョンを取得します。

グローバルパッケージとローカルパッケージの両方を更新したら、エラーを回避するためにキャッシュをクリアします。

npm cache verify (recommended)
npm cache clean (for older npm versions)

ここに公式の参考文献があります:

  1. 更新CLIを
  2. コアパッケージコアパッケージの更新。

4
npm cache clean --force 本当に助けてくれました
Pini Cheyni 2017年

1
なぜああ、なぜこの部分はリリースノートにないのですか!
Drenai

RxJS 6が廃止されたことについて、あなたが言ったことを確認してください。どこを見てもv6が最新の安定版リリースgithub.com/ReactiveX/rxjs rxjs-dev.firebaseapp.com
Joey Gough

1
@JoeyGoughいいキャッチ!Ng7はrxjs 6.3に依存しています。コメントありがとうございます。REF:github.com/angular/angular/blob/master/...
Pageiiメーカー

107

あなたは単に使うことができます

npm install -g angular-cli -初めての場合

npm install -g @angular/cli@latest -すでにインストールされている場合、更新のため


37

強力なコマンドは、最後のパッケージをインストールして置き換えます。

同様の問題がありました。それを私が直した。

 npm install -g @angular/cli@latest

そして

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

ここに画像の説明を入力してください


これはローカルのAngular CLIで機能します。私の答えをチェックしてグローバルなものをアップグレードしてください
Francesco

グローバル
クライを


22

次のアプローチは私のために働きました:

npm uninstall -g @angular/cli

その後

npm cache verify

その後

npm install -g @angular/cli@latest

私はWindows 10で作業していnpm cache clean --forceます。インストール中に問題がなければ、何もする必要はありません。


2
@latest最新がデフォルトであるため、を指定する必要はありません。
Ambroise Rabier

このソリューションが機能しない場合:stackoverflow.com/a/58678941/8718377
veben

17

グローバルCLIバージョンの管理に問題がある場合は、NVM:MACWindowsを使用することをお勧めします

AngularプロジェクトのローカルCLIを更新するには、次の手順に従います。

CLI v6からng update、依存関係を自動的に新しいバージョンに更新するために実行できます。

ng update @angular/cli

ではng update、時にはあなたが追加したい場合があります--forceフラグ。

--allフラグを渡して、すべてのパッケージを同時にアップグレードすることもできます。

ng update --all --force

CLIを移行したいだけなら、これを実行してください:

ng update @angular/cli --migrateOnly

--from=fromたとえば、移行元のフラグバージョンを渡すこともでき--from=1.7.4ます。このフラグは、単一のパッケージが更新されている場合にのみ、移行時にのみ使用できます。

更新が完了したら、インストールしたtypescriptのバージョンが現在の角度バージョンでサポートされていることを確認してください。サポートされていない場合は、typescriptバージョンをダウングレードする必要があります。また、通常、angularの最新バージョンはtypescriptの最新バージョンをサポートしないことに注意してください。

チェックアウトAngular CLI / Angular / NodeJS / Typescript互換バージョンはこちら

このガイドもご覧ください。Angular プロジェクトの更新update.angular.io


古い答え:
あなたがする必要があるのはangular-cli-diffで比較することだけですし、あなたの現在のプロジェクトに変更を適用します。

手順は次のとおりです。

  1. あなたが1.4から行くとしましょう。1.5にしてから https://github.com/cexbrayat/angular-cli-diff/compare/1.4.0...1.5.0
  2. クリック File changedタブを
  3. 現在のプロジェクトに変更を適用します。
  4. npm install / yarn
  5. すべてをテストするnpm scripts詳細はこちら: https : //stackoverflow.com/a/45431592/415078

14

@ShinDarthの回答に加えて。

私は彼が言ったことをしましたが、私のパッケージは角張ったバージョンを更新しませんでした、そして私はこの投稿がについてangular-cliであることを知っています、しかし私はこれも助けることができると思います。

  • したがって、上記の@ShinDarthの発言を行った後、角度バージョンを修正-ng new projectnameするには、パッケージを生成する新しいプロジェクトを作成する必要がありました。
  • 新しいパッケージをコピーしてから、更新が必要なすべてのプロジェクトパッケージに新しいパッケージを貼り付けます(以前の依存関係を追加し、最初の行で名前を変更することを忘れないでください)。または、コピーアンドペーストせずに手動でバージョンを変更できます。
  • 次にを実行し-npm installます。

今、私ng serveは再び働いています。多分それを行うためのより良い方法があるかもしれません。誰かが知っている場合は、共有してください。これは更新が必要なすべてのプロジェクトで行うのが面倒だからです。


回答よりも私の回答への追加のように見えるので、おそらく私の回答の下にコメントとして移動できますか?
Francesco Borzi 2017年

7
申し訳ありませんが、あなたは正しいですが、私はあなたの答えにコメントをするために50の評判を必要とします。
Leonardo Souza Paiva 2017

9

更新するには角度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


3

私の場合、npm install --save-dev angular-cliを使用してangular-cliをローカルにインストールしました。したがって、コマンドnpm install -g @ angular / cliを使用すると、「グローバルAngular CLIバージョン(1.7.3)がローカルバージョン(1.4.9)よりも大きい」というエラーが生成されます。angular-cli、@ angular / cliおよび@ angular / cli @ latestは2つの異なるcliであることに注意してください。これを解決するには、すべてのCLIをアンインストールしてから、npm install -g @ angular / cli @ latestを使用して最新のAngular CLIをインストールします

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.