基本的には公式のアップデート手順を参考になります。大きなバージョンアップ時は、開発ブログにもわかりやすく手順が乗ることが多いので、そちらも参考に。
が、一部うまくいかないこともあるので備忘。
tns コンパイラを最新に
プロジェクトのルートで以下を実行します。
npm install -g nativescript
iOS/AndroidランタイムやCoreモジュールを最新に
tns platform remove ios && tns platform add ios
tns platform remove android && tns platform add android
npm i tns-core-modules@latest
※公式では tns update
で良いよーと書いてありますが、「Could not update the project!」 と出て失敗するころが多く、上記のコマンドで対応しています。
TypeScriptの開発用プラグインをアップデート(TypeScriptプロジェクトのみ)
npm i nativescript-dev-typescript@latest --save-dev
./node_modules/.bin/ns-upgrade-tsconfig
Angularの依存関係をアップデートする(Angularプロジェクトのみ)
npm i nativescript-angular@latest --save
./node_modules/.bin/update-app-ng-deps
npm i
Webpackプラグインの更新(必要に応じて)
基本的には必要ないものの、メジャーバージョンアップなどでは必要になることが多い。
Webpackでビルドできない場合などは効果があることが多い。
npm i nativescript-dev-webpack@latest --save-dev
./node_modules/.bin/update-ns-webpack --deps --configs
最新になったか確認
tns info
コマンドで以下のように全て「Up to date」と出れば最新版になっています
$ tns info
All NativeScript components versions information
┌──────────────────┬─────────────────┬────────────────┬───────────────┐
│ Component │ Current version │ Latest version │ Information │
│ nativescript │ 3.3.1 │ 3.3.1 │ Up to date │
│ tns-core-modules │ 3.3.0 │ 3.3.0 │ Up to date │
│ tns-android │ │ 3.3.1 │ Not installed │
│ tns-ios │ 3.3.0 │ 3.3.0 │ Up to date │
└──────────────────┴─────────────────┴────────────────┴───────────────┘
ビルドや動作で失敗するようになったら
アップデート後、ビルドエラーや実行時エラーが出るようになったら、以下を試してみましょう。
プロジェクトのルートで
rm -rf node_modules/
npm install
tns platform remove [ios/android]
その他NativeScriptアップデート時にやっておくといいこと
tns-platform-declarations の最新化
最新のOSのSDKのメソッドや定数を使いたいなら、アップデートしておくほうが良い。(というか基本最新化して不都合は無い)
npm i tns-platform-declarations@latest
プラグインのアップデート
NativeScriptのバージョンアップと共に、使っているプラグインが古くなっていないか、セキュリティパッチが出てないか確認し、アップデートするのが良いだろう。
npm outdated # これで新しいバージョンが出てないか確認
npm i [プラグインのnpmパッケージ名]@latest # インストール
もちろん、プラグインのアップデートで既存のコードが動かなくなる(最悪アプリが起動しなくなる)こともあるので、アップデートはひとつずつ、アプリの動作を確認しながら行うのが良い。