作成済みプロジェクトでAngular CLI をバージョンアップする手順

Angular CLI をバージョンアップ

備忘録みたいなものです。Windows機でがんばってます。
Angular CLI のバージョンを @8 から @9 に上げようとしましたが、途中でエラーが出たりしてつまづいたので、手順をまとめています。

プロジェクト作成済みの時に出るエラー

ある時、Angular のプロジェクトを作成後にバージョン確認をしたら、下記のようになっていました。

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/


Angular CLI: 8.3.19
Node: 11.13.0
OS: win32 x64
Angular:
...

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.803.19
@angular-devkit/core         8.3.19
@angular-devkit/schematics   8.3.19
@schematics/angular          8.3.19
@schematics/update           0.803.19
rxjs                         6.4.0

Angular CLI をアップデートするためのコマンドを確認。

アップデート用コマンド ――公式ドキュメントより
アップデートガイド ――公式ドキュメントより

アップデートガイドによると、まず 8.x 系の最新バージョンに上げないといけないようです。

ng update @angular/core@8 @angular/cli@8

入力すると、下記のエラー。

The "@angular-devkit/schematics" package cannot be resolved from the workspace root directory. This may be due to an unsupported node modules structure.
Please remove both the "node_modules" directory and the package lock file; and then reinstall.
If this does not correct the problem, please temporarily install the "@angular-devkit/schematics" package within the workspace. It can be removed once the update is complete.

node_modules と package-lock.jason、package.json が邪魔をしているらしいので、それらをすべて一旦削除してやってみましたが、だめでした。

Angular CLI をバージョンアップするには

既にプロジェクトを作成済みの場合は、

  1. 一旦グローバルの Angular CLI をアンインストール
  2. キャッシュの破損を修復
  3. 安定板の最新を再インストール

するといいみたい。

各コマンドはこちら。

# 一旦アンインストール
npm uninstall -g @angular/cli

# チェック
npm cache verify

# 安定版の最新を再インストール
npm install -g @angular/cli

Node.js のバージョンが合わないと言われる

無事に Angular CLI のバージョンは上がったようなのですが、今度は下記のエラーが出現。

Node.js version v11.13.0 detected.
The Angular CLI requires a minimum Node.js version of either v10.13 or v12.0.

Please update your Node.js version or visit https://nodejs.org/ for additional instructions.

Node.js のバージョンが要件を満たしていないから上げてくれ、と言っています。

こちらからインストーラーをDLすれば、上書きしてバージョンアップしてくれるはず、なのですが、なぜかバージョンが変わらない!

犯人は nodist

すっっかり忘れてしまっていたのですが、私のPCには nodist が入っていたのでした。

nodist とは

Node.js のバージョン管理ができるツールです。

https://github.com/nullivex/nodist

諸々の学習時に、テキストのバージョンと合わせるために入れていました。

nodist の存在を確認します。

nodist -v

バージョンが表示されたら、nodist が動いています。
インストール済みの Node.js のバージョンを確認します。

nodist list

このとき、一覧の左側に「>」と表示されているものが、現在指定されている Node.js のバージョンです。

必要なバージョンが一覧に出てこない場合、以下のコマンドでインストール可能なバージョンの一覧を確認できます。

nodist dist

必要なバージョンを追加します。

nodist add 必要なバージョン

# たとえば、12.16.1 をインストールするとき
nodist add 12.16.1

使用するバージョンを指定するには、

nodist use 12.16.1

# もしくは
nodist global 12.16.1

これで、Node.js のバージョンもちゃんと上がりました。

Angular CLI のバージョンアップ完了です!

     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 9.1.3
Node: 12.16.1
OS: win32 x64

Angular:
...
Ivy Workspace:

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.901.3
@angular-devkit/core         9.1.3
@angular-devkit/schematics   9.1.3
@schematics/angular          9.1.3
@schematics/update           0.901.3
rxjs                         6.5.4

この記事を書いた人

ひしもち

京都の某Web制作会社で4年弱勤務したのち、退職して個人事業主となりました。
現在の主なお仕事は、WordPressを利用したWebサイトの制作です。
業務システムのUIデザインをしていた経験もあり。

専業主夫+3人の子どもたちと暮らしています。ゲーム好きなインドア派ですが、ゆるゆる楽しむプレイスタイルです。