開発者向けのヒント
Permission Errors の解決
パッケージをグローバルにインストールすると、 EACCES
パーミッションエラーが発生する可能性があります。このような場合は、管理者権限なしで動作するようにnpmを設定する必要があります。
note
sudo
とnpmの併用は、さらなる問題を引き起こす可能性があるため、推奨されません。
このガイドには、パーミッションの問題を解決するための2つのオプションがあります。詳細なドキュメントと追加オプションについては、npm docs を参照してください。
Option 1
権限の問題を回避する最善の方法は、 node version manager を使用してNodeJSとnpmを再インストールすることです。
このガイドでは、 nvm のインストールと使用方法について説明します。完全なドキュメントについては、 nvm docs for full documentation. See the npm docs を参照してください。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) ~/.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
- Atom: a hackable text editor made by GitHub
- 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
note
しかし、どのプラットフォームが現在使用されているかをブラウザがどのように認識するか、ということは変わらないでしょう。プラットフォームはデバイスの検出とユーザーエージェントの検査によって決定されます。そのため、プラットフォームを変更するには、ユーザーエージェントを変更する必要があります。これを行うには、Chrome DevTools を開き、Ctrl+Shift+i(Mac では Cmd+Option+I) でデバイスのモードをオンに切り替えでください。デバイスモードの切り替えは、Ctrl+Shift+M(Cmd+Option+M on Mac)で行います。
デバイスのドロップダウンからデバイスを選択すると 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やカメラなどのネイティブ機能へのアクセスを許可します。