オレオレ Handpick も作ってみた
昨日紹介した Handpick という npm パッケージコマンドだが、動作の仕組みを色々研究していた結果、ほぼ似たようなことを行うオレオレ Handpick を作ってしまった。その名も @neos21/handpick
Neo's Handpick。
本家 Handpick との違いは以下のとおり。
- コマンド名は
handpick
ではなくnhp
(Neo's HandPick の略) とした npm install
のラップにしか対応していない。yarn
やpnpm
には非対応dependencies
とdevDependencies
はデフォルトでインストールする仕組みにした。除外はできない- Handpick は
dependencies
に全てのパッケージをマージする形式だったが、コチラはdevDependencies
にlintDependencies
などをマージする形式とした- 特に意味はない。w
devDependencies
の元々の内容は__devDependencies
プロパティに退避させるようにした
- 引数は
handpick --target=hogeDependencies
と指定するのではなく、直接nhp hogeDependencies
とだけ書けば動くようにした- 名称は
Dependencies
で終わる名称のみ受け付けるようにしてある
- 名称は
package.json
を一時的に書き換える際、package.json.temp
ファイルを作るようにしたCtrl + C
など、何らかの理由でnpm install
を中断してpackage.json.temp
ファイルが残ってしまった時に、$ nhp --cleanup
コマンドを叩くことで、package.json.temp
をpackage.json
に戻すオプションも用意した
Handpick の機能簡略版という感じで、至らぬ点も多いと思う。常用利用するなら本家 Handpick がオススメ。
一応、単一の ES Modules ファイルで作っており、依存パッケージゼロというところがウリ (?)。個人的には yarn
とか使わないので、お一人様プロジェクトではコレを使うことがあるかもしれないかなー、ぐらいのつもり。