Webエンジニア hakshuの部屋

のらりくらりと綴る

自分がnpm scriptsを使う理由

普段よく使っていますが、改めて自分がなぜ好んで使うのか自分の備忘的な意味も込めて書いておきます

概要

package.json の scripts プロパティに定義しているスクリプトをnpm scriptsと呼びます docs.npmjs.com

例えば以下のようにpackage.jsonに書いている場合は

{
  "name": "npm-scripts-sample",
  "version": "1.0.0",
  "scripts": {
    "build": "webpack",
    "start": "webpack-dev-server --open"
  }
  ...
}

コマンドラインで以下のようにスクリプトを実行できます

$ npm run build

# yarn の場合
# run は省略可能
$ yarn (run) build

# 実行結果
# yarn run v1.22.4
# $ webpack
# Hash: 26a04d64a2da6e6f2c09
# Version: webpack 4.43.0
# Time: 2846ms...

メリット

  • cli をグローバルにインストールする必要がない
    • 開発環境だけでなく、Dockerfile、CIなどでも
  • node_modules にインストールされているライブラリを使うので、個々人でのバージョンの差異が出ない
  • gulp などタスクランナーを導入しなくてもよい
  • 長いコマンドでも簡潔なエイリアスを使って npm or yarn で実行できる

デメリット

  • 複雑なタスクはやりづらい

基本的には npm scripts で事足りる印象ですが、複雑なタスク実行などは gulp 等で補ってもよさそうです

個人的には先程挙げた以下のメリットを強く感じるので、npm scripts を活用しています

  • cliをグローバルにインストールする必要がない
  • node_modulesにインストールされているライブラリを使うので、個々人でのバージョンの差異が出ない

参考

npm scriptsの活用方法などはこちらがわかりやすいと思います ics.media