質問: 例えば、Semantic UIというライブラリは `npm install` した際にインストールする項目を選ぶことができたり、質問形式で項目を絞ることができます。 同じような実装をしたいのですが、どのようにすればいいでしょうか?
回答: * `npm install`をパッケージ側でhookして任意のコマンドを呼び出す方法としては、package.jsonにscripts.installを定義しておくものがあります。実際、Semantic UIもこれを用いているようです。 ``` // package.json { "scripts": { "install": "will be invoked by `npm install`" }, } ``` 質問形式の簡易インストーラ的な実装はnpmとは直接関係ありませんので、自分でスクリプトを書くなり、そうした外部ツールを呼び出すなり、様々な方法が考えられます。npmでそれらしい言葉を検索すると使えるものが見つかるかもしれません。 * 当該パッケージにおいて呼び出されているtasks/install.jsなども参考なるでしょう。ここでは、glup-promptなるパッケージを用いてtasks/config/project/install.jsに定義された質問項目を処理しているようです。 以上中身をなぞっただけですが、ヒント程度になれば幸いです。個別の事項についてはより具体的な質問(たとえば、『glup-promptがうまくうごかない』など)を検索したり、必要があれば投稿してみると、実用的な回答が得られるかもしれません。