開発者向けのヒント
権限エラーの解決
パッケージをグローバルにインストールすると、 EACCES パーミッションエラーが発生する可能性があります。このような場合は、管理者権限なしで動作するように npm を設定する必要があります。
sudo と npm の併用は、さらなる問題を引き起こす可能性があるため、推奨されません。
このガイドでは、権限の問題を解決するための 2 つのオプションを提供します。完全なドキュメントおよび追加のオプションについては、npm ドキュメントを参照してください。
オプション 1
権限の問題を回避する最善の方法は、Node バージョンマネージャーを使用して Node.js と npm を再インストールすることです。
このガイドでは、nvmのインストールと使用方法を文書化します。完全なドキュメントについては、nvm ドキュメントを参照してください。Windows 用の追加オプションと手順については、npm ドキュメントを参照してください。
-
nvm のインストール
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash -
新しい端末は nvm を使うようになります。確認するには、新しいターミナルを開き、次のコマンドを実行します。何かが表示されれば、インストールは成功です。
$ command -v nvm -
NodeJS の最新の LTS リリースをダウンロードしてインストールするには、次のコマンドを実行します:
$ nvm install --lts -
新しくインストールした NodeJS をデフォルト環境として設定します:
$ nvm alias default lts/* -
新しい端末は nvm コントロールの NodeJS を使うようになりました:
$ node -v # will print the version installed above$ which npm # will print a path somewhere within the ~/.nvm folder
グローバルパッケージが ~/.nvm にインストールされます。 sudo なしで npm を使用している限り、パーミッションエラーは発生しません。
Option 2
Windowsでは利用できませんnpm のディレクトリの所有者を現在のユーザに変更します:
$ sudo chown -R $(whoami) /usr/local/{lib/node_modules,bin,share}
$ sudo chown -R $(whoami) /usr/lib/node_modules
$ sudo chown -R $(whoami) ~/.npm ~/.npmrc
これらのグローバルディレクトリは root が所有しなくなったため、 sudo を使用せずにパッケージをグローバルにインストールできます。
依存モジュールの更新
npm dependency をアップデートするためには、<package-name> をアップデートしたいパッケージ名に変更して以下を実行します:
npm install <package-name>@<version|latest> --save
例えば、@ionic/angular パッケージを 最新 リリースのものに更新するには、以下を実行してください:
npm install @ionic/angular@latest --save
npm は最初に package-lock.json からパッケージのバージョンを読み込みにいきますので、パッケージを更新する際は CLI を利用することをおすすめします。
エディタ
選択できるコードエディターはたくさんあります。ここに私たちのお気に入りのいくつかがあります:
- Visual Studio Code: a popular and free text editor made by Microsoft
- WebStorm: a powerful non-free editor by JetBrains
デバッガの利用
デバッガ というキーワードはアプリケーションをデバッグするために利用されます。ほとんどのブラウザがデバッガステートメントに直面する時、 実行中の JavaScript の処理は停止され、ブラウザはデバッガをロードします。これはアプリケーションに"ブレークポイント"をセットするために使用されます。
例えば、ある関数が正しい値を返さない時は、デバッガを使用してコードをステップ実行し、変数を調べることができます。
function myBrokenFunction() {
debugger;
// do other stuff
}
アプリが起動すると、この機能で一時停止します。その後、開発者ツールを使用して、JavaScript を 1 行ずつ実行し、関数が正確にどこで中断するかを調べることができます。
モードの変更
デフォルトでは、アプリケーションがブラウザで表示されると、Ionic は MD モードを適用します。しかし、Ionic コンポーネントはそれぞれのプラットフォームに応じて接続されるため、そのアプリケーションが iOS でどのように見えているか確認できると便利です。そのために、アプリケーションが起動している URL に ?ionic:mode=ios を追加します。例えば、アプリが 8100 ポートで起動している場合は、URL はこうなります: http://localhost:8100/?ionic:mode=ios
これはブラウザが検出するプラットフォームを変更するものではありません。プラットフォームはデバイスの検出とユーザーエージェントの確認によって決まります。プラットフォームを変更するには、ユーザーエージェントを変更する必要があります。そのためには、Ctrl+Shift+I(Mac ではCmd+Option+I)で Chrome DevTools を開き、Ctrl+Shift+M(Mac ではCmd+Option+M)でデバイスモードをオンに切り替えます。
デバイスのドロップダウンからデバイスを選択すると viewport の大きさと同様に、ユーザーエージェントも変更されます。
iOS シミュレータを使用する
iOS シミュレータは実際のデバイスに届く前にアプリケーションのテストとデバッグを可能にします。
シミュレータを利用可能にする前に、Xcode、アップルの IDE をインストールする必要があります。
Ionic CLI を用いて、シミュレータ上の現在のディレクトリでアプリケーションを実行可能にします:
ionic cordova emulate ios -lc
-lc フラグを渡すことでライブリロードを有効にし、かつログコンソールををターミナルに出力することができます。
また Xcode を利用することでエミュレータを起動し、アプリケーションをデバッグすることもできます。
Xcode を開き、../path-to-app/platforms/ios/myApp.xcodeproj を開きます。
アプリケーションが読み込まれると、コンソール出力とデバイスのログが Xcode の出力ウィンドウに表示されます。
Genymotion Android エミュレーターを使用する
Android SDK には標準のエミュレーターが付属していますが、速度が遅く、応答しない場合があります。
Genymotion はより高速な代替エミュレータであり、GPS やカメラなどのネイティブ機能へのアクセスを許可します。