備忘録みたいなものです。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 をバージョンアップするには
既にプロジェクトを作成済みの場合は、
- 一旦グローバルの Angular CLI をアンインストール
- キャッシュの破損を修復
- 安定板の最新を再インストール
するといいみたい。
各コマンドはこちら。
# 一旦アンインストール
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 の存在を確認します。
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