🐈

何の npm-scripts を実行したかを取得する方法

2022/01/07に公開

以下のような設定で

package.json
{
  "scripts": {
    "hoge": "node name.js",
    "fuga": "node name.js",
    "poo": "node name.js",
  }
}

npm run hoge と実行すると hello, hoge! がログ出力され、
npm run fuga と実行すると hello, fuga! がログ出力され、
npm run poo と実行すると hello, poo! がログ出力されるものを作る方法。

process.title を使う

process.title を使うと、npm run などから実行したコマンドの全文を取得できる。

npm run hoge
name.js
console.log(process.title); // "npm run hoge"

あとは正規表現で取得するだけ

name.js
const { title } = process;
const REGEX = /^npm run ([a-zA-Z0-9_\-\+\.]+)/;
if(REGEX.test(title)) {
  console.log("hello, " + title.match(REGEX)[1] + "!");
}

Discussion