昨今のweb開発で必要なBabel・Sass・Gulp・Webpackといった技術は、Node.jsのパッケージ管理ツール「npm」を通して使われます。npm
の機能は豊富で、覚えておくと便利な使い方がいくつもあります。特にお勧めのものをピックアップしました。
npm init
には-y
をつけるとダイアログが表示されない
npm
のモジュールを用いたプロジェクトを作成する際、最初に使用するコマンドはnpm init
です。実行すると、プロジェクト名や著作権の設定がダイアログが表示され、必要な項目を入力したり、Yes([Enter]キー)を入力する必要があります。
特に設定が不要な場合、-y
オプションを指定することで、ダイアログを表示することなく初期化できます。
npm init -y
次に示すのは、npm init
とnpm init -y
実行後のコマンドラインの差です。npm init
はname
やversion
といった設定をダイアログ式で尋ねられますが、npm init -y
ではそれがありません。
インストールコマンドの省略
パッケージインストール時のnpm install
コマンドは使用頻度が高いですが、わざわざinstall
と7文字も打つのは面倒です。i
一つで省略ができます。
npm i
パッケージのインストールはこうなります。
npm i (パッケージ名)
依存オプションの省略
開発時のみに利用するパッケージをインストールしてpackage.json
に記録するため、npm install --save-dev (パッケージ名)
とすることが多いでしょう。--save-dev
と10文字も書くのは時間がかかるしタイプミスをしてしまう恐れがあるので、-D
で省略しましょう。
npm i -D
例えば、Gulpをローカル環境にインストールするならば、次のようになります。
npm i -D gulp
ちなみに、save
オプションのみを指定するs
、グローバル指定をする-g
もよく使います。
アンインストールコマンドの省略
パッケージのアンイストールuninstall
は、un
で省略できます。
npm un (パッケージ名)
パッケージをアンインストールし、package.jsonからも削除する場合は、前述の-D
オプションと組み合わせます。
npm un -D (パッケージ名)
パッケージはまとめてインストール可能
開発環境を構築する際、1モジュールずつインストールしていくのは手間です。
npm i -D gulp
npm i -D webpack
npm i -D node-sass
パッケージはまとめてインストールできるので、時短になります。
npm i -D gulp webpack node-sass
キャッシュをクリアしてパッケージを再インストールする
パッケージのインストール、アンインストールを繰り返していると、キャッシュゆえに予期せぬエラーが発生する場合があります。モジュールの挙動がおかしい場合は、キャッシュをクリアしモジュールの再インストールを試してみると解決できる場合があります。
- node_modulesフォルダの削除
- npm キャッシュの削除
- packge.jsonに記載されたパッケージの再インストール
の実行方法は下記の通りです。
rm -rf node_modules
npm cache clean
npm i
スクリプトの実行(npm-scripts)
package.jsonのscripts
に記述したスクリプトをnpm run (スクリプト名)
実行できるnpm-scriptsの機能があります。たとえば次のように文字列を「Hello tonkotsuboy!!」という文字列を出力する「mytask
」を記述します。
{
"scripts": {
"mytask": "echo 'Hello tonkotsuboy!!'"
},
}
プロジェクトフォルダに移動し、npm run
コマンドをmytask
を実行します。
npm run mytask
npm-scriptsの強みは、node_modules以下にインストールしたモジュールを実行できる点です。例えばGulpはグローバル環境、ローカル環境の両方にgulpをインストールするのが一般的ですが、npm-scriptsを駆使すればグローバルにGulpをインストールする必要がなく、ローカル環境のパッケージのみに依存した構成が可能です。
{
"scripts": {
"build": "gulp build",
"watch": "gulp watch"
}
}
npmを恐れることなかれ
npmを使ったコマンドライン操作は今の時代避けて通れませんが、工夫次第で便利に操れます。特にinstall
周りの省略は、タイピング量が減ってミスを防ぐことができます。お勧めのコマンドばかりなので、知らないものがあれば是非試してみてください。