こんにちは、バンクーバーで絶賛就活中のたかとーです。
最近気づいた NPM パッケージ作るのって結構お得だよね?ということについて書いていこうと思います。
NPM とは?
Web 開発に携わっているほとんどの人がお世話になった事があるはずNPM。Node.js のパッケージマネージャーです。PHP で言うところのComposerですね。
そしてこの NPM のレジストリ(NPM が管理している、パッケージをアップロードできる場所)に自分で作ったパッケージを登録することで、NPM コマンドでプロジェクトに追加できるようになります。
$ npm install package-name
NPM パッケージは誰でも作れるの?公開できるの?
このツイートでハッとした。
— 森田将和|フルスタックWebエンジニア (@tabosque) March 22, 2020
npmやらRubyのGemやらって難しいものやユニークなものじゃなきゃダメな先入観があった。
だけど普段の開発でutilsにぶち込んでいて、いろんなプロジェクトで共通して使っている処理や関数を公開してしまえばいいのか。 https://t.co/8i2apl3btN
実は、上記の Tweet がキッカケとなりこの記事を書きました。
もしかして、NPM パッケージを作って、パブリックな場所に公開することに高い敷居を感じてしまっている人が割といるのではないだろうか?と感じました。
「既存のパッケージとかぶってそうな機能だけど…」、「コードのクオリティに自信がない…」
いいんです。ルールなんて無いので。どんどん作ってバシバシ公開していきましょう。
自分は現在 2 つのパッケージを公開していますが、取り立てて特別な機能やコードというわけではないです。完全に自分が使うために公開しています。
開発が高速化
自分は頻繁に、過去の GitHub リポジトリもしくは Gist を漁って、よく使う便利コードをコピペして使いまわしていました。でもこれ面倒くさいんですよね。どのリポジトリにあるんだっけ?とか。割と迷って時間を食います。
しかし NPM パッケージなら問題ありません。npm i パッケージ
で終わりです。
リファクタリングが楽
とある機能のコードをリファクタリングだったりバグ修正をして、例えば自分の React プロジェクトに反映したい場合、NPM パッケージ化しておけば、修正したコードを NPM 上に公開して、新しいバージョンをnpm install
で取得すれば OK です。
一方で、コピペでコードを使いまわしている場合、一箇所を直しただけだと、他のリポジトリなどには古いものが残ったままです。これは面倒くさい。
つまり同じ機能のコードを複数箇所で管理している状態になってしまいます。
ブログや LinkedIn に投稿するネタになる
就活中の自分にとっては結構大事なメリットです。
実は、npm install
でパッケージをインストールするだけなら、NPM に公開しなくても、それ専用の GitHub リポジトリを作れば実現できます。
Use Github branch as dependency in package.json - Jon Church - Medium
NPM で公開してコミュニティに貢献する、これが大きな大事だと思います。
そしてブログ、SNS でアウトプットすることで頑張ってるアピールになります。
テストも書いておいたりすると、「この人テスト書けるんだ」みたいな、具体的な技術力アピールにもなるかと思います。
誰かに使ってもらえると嬉しい
NPM のサイト上でパッケージのダウンロード数が見れます。
これ、結構嬉しいです。誰かが使ってくれてるんだな…。と。英語で言うと rewarding な感じです。
閑古鳥が鳴いているコミュニティサイトばかり作ってきた自分としては感極まるものがあります。
まとめ
- クオリティ関係なし!
- 既存のパッケージと機能がかぶっても OK!
- 開発が高速化する(かも)
- 企業など自分の外へのアピールになる(多分)
などなど、悪いことゼロで良いことしか無い、コスパ最強術だと思うので是非、家から出られず暇だーという方はよく使うコードをパッケージ化して公開してみて下さい。
P.S.
色々偉そうに言ってきましたが、海外就職は絶賛苦戦中笑
応援していただけると嬉しいです。