Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8908

npm-scriptsをnpm-run-allで用途や環境毎に書く際の小技

$
0
0
  • Web開発の際のタスク処理として、package.json内に記述して利用できるnpm-scriptsを利用しています。
  • またその際に、複数処理の直列化や並列化に便利なnpm-run-allを利用しています。
  • 今回はそれを用いた用途や環境毎への記述を、明確かつ柔軟にする方法を記録します。

結果

  • 先に結果の記述を示します。以下の通りです。
{"scripts":{"build":"run-s build:{sass,ts}","build:sass":"sass input.scss output.css","build:ts":"tsc main.ts","watch":"run-s watch:{sass,ts}","watch:sass":"sass --watch input.scss output.css","watch:ts":"tsc -w main.ts"}}

内容

  • 上記の結果例は、主にbuildwatchを行うタスクです。
  • こちらで利用している方法は、処理内容を波括弧で指定するということです。

波括弧での指定

  • コロン(:)で用途毎に分けたタスクを一回で実行する際には、以下のようなやり方があります。
{"scripts":{"build-basic":"run-s build:sass build:ts","build-glob":"run-s build:*","build-brace":"run-s build:{sass,ts}","build:sass":"sass input.scss output.css","build:ts":"tsc main.ts",}}
  • これらから私はbuild-braceのような波括弧で指定した方法を利用しています。
  • そのメリットは以下の通りです。
    • 非重複
      • run-s build:sass build:tsのように言葉の重複が無く、今後同一のタスクが増えても、用途の記述だけで済む。
    • 明示化
      • run-s build:*のようなアスタリスク指定と比べて、明示的に記述されているため、処理の内容が理解しやすい。
    • 順序化
      • 波括弧内の順に処理を行ってくれるため、仮にpackage.json内でbuild:sassbuild:tsを逆に記述しても問題無い。
        • run-s build:*での指定では、処理順番がpackage.json内の並び通りに行われるため、逆に記載してしまうとその順になってしまう。

まとめ

  • 上記のことから、タスクやscript記述においても可読性・明示化・非重複性を再認識しました。

参考


Viewing all articles
Browse latest Browse all 8908

Trending Articles