Node.jsの機能を使用する際にはnpmを使用する。
一方、Angularの機能を使用する際にはngコマンドを使用するが、こちらはあまり意識して使うことは無いかもしれない。
良く使用するnpmコマンド
主に使用するnpmコマンドは以下。
- npm install:カレントディレクトリにnodeをインストールする
- npm test:UTを実行する
- npm start:アプリケーションを起動する
また、npm run <script> で、グローバルの設定に依存せず、プロジェクトフォルダのpackage.jsonに記載されているscript欄のコマンドを実行する。
install、test、startは、script欄に記載が無くても実行できる。
ngxコマンド
npxはnpmに同梱されているコマンドで、開発フォルダのnode_modules/.binに含まれる実行ファイルを一時的に呼び出す。
例えば、ngコマンドを使用したいとき、直接『ng ●●』と打つと、プロジェクトではなくグローバルのnode_modulesのngコマンドを参照する。
プロジェクトでAngular-CLIを使用していても、グローバルに存在しない場合、『用語’ng’は、コマンドレット、関数、スクリプトファイル、または操作可能なブログラムの名前として認識されません』エラーとなる。
以下のようにnpxコマンドに続けて実行すれば、ローカルのAngular-cliを参照するため、実行できるようになる。
npx ng build
npm run <script>に引数を渡す
package.jsonのscript欄に以下の記載があるとする。
"mytest": "npm run test --code-coverage"
つまり、npm run mytest を実行すれば、カバレッジ付きのテストが実行される。
このとき、すべてのテストでなく、1つのファイルのテストを実行したい場合は、さらに-includeオプションを付与する必要がある。
しかし、npm run mytestは、package.jsonのscriptsに記載されているmytestの処理を実行せよ、という意味なので、それ自体に引数を渡すことができない。
mytestで実行される先の処理に引数を渡す場合は、以下のように『-』を2つ挟んで追加のオプションを記述する。
npm run mytest -- --include filepath

コメント