技術系

資料をnpmで管理してみた!

技術系

こんにちは、なかにしです。

今回は雑談チックな内容です。

定期開催している勉強会で、
自分の今やっている業務に絡めたプレゼンをする機会があったのですが、
インパクトを出したくて、どうしよっかなーと思ったときの話です。

資料を自動で開いたらスゴくね??

結論、これです。
適当にコマンドちょちょっと打ったら、資料が手元にバーンと出る。

これだと、資料を手元で管理する手間もなく、インパクトもある。

そして今の業務は、npmで業務要件に沿ったオリジナルFWをひな形を作成・管理する仕事。

じゃあnpm installで資料をインポートできるような仕組みを作成すれば、
今やっている業務のイメージも湧きやすく、一石二鳥じゃん!


ということで作成しました。

当初はパワポを内包して1つのパッケージにし、
インポートできるようにしようと思ったのですが、
パワポってみんな持ってる訳じゃないよな…と思い、やめました。

代わりに、Googleスライドで資料を作成して公開し、
そこをコマンドを使用して自動で開くようにしました。

デモ動画

裏でコマンドを入力して、資料を開いています。(うまく画面録画できなかった)

作ったスクリプト

完成したスクリプトがこちらです。

// 実行用のExecコマンドを取得
const { exec } = require("child_process");

// スライドのURL
const slideURL =
  "ここにGoogleスライドのURLを入れる";

// OS判定(Winだとwin32, Macだとdarwin, Linuxだとlinuxを返す)
const isWindows = process.platform === "win32";

// スライドを開く(windowsのみコマンドが違う)
if (isWindows) {
  exec(`start ${slideURL}`);
} else {
  exec(`open ${slideURL}`);
}

このスクリプトを、package.jsonを使用してnpmに公開します。

{
  "name": "sample",
  "version": "1.0.0",
  "description": "ここに説明を入れる",
  "main": "index.js",
  "scripts": {
    "postinstall": "node index.js"
  },
  "repository": {
    "type": "git",
    "url": "GithubのURL"
  },
  "author": "作者の名前",
  "license": "MIT",
  "bugs": {
    "url": "GithubのissueのURL"
  },
  "homepage": "GithubのREADMEのURL"
}

ここで大事なのが、以下の部分です。

"postinstall": "node index.js"

これ、最初は “watch”: “node index.js” にして、
npm run watchで起動しようとしてたのですが、
postinstallというキーにすれば、npm install後に自動でパワポが開くという神仕様があったので変更しました。

さいごに

これはインパクトありますね。
普通のプレゼンに使うとコマンド?!なんだそれ分かんねーよ!って怒られそうですが…

ぜひエンジニアの交流会などで使用してみてはいかがでしょうか。

今回はここまで!
Enjoy Hacking!