npmモジュールなどのOSS選定をサポートしてくれるWebサービスまとめ

  • 35
    Like
  • 0
    Comment

さいきん個人でNode.jsを使って、ちょっとしたWebツールを作っているのですが、作るものがそこそこの規模になってくると、どんどん依存するnpmモジュールが増えていきます。
(npmのモジュール粒度問題みたいな形で、少し前に話題にもなりました)

加えて、これまた最近話題になっていましたが、Webフロントエンドにはライブラリやツールが乱立している、ということで、Web開発をしていると、何を使うべきかの判断に迫られる場面が数多く発生するように思います。
READMEを読んだり、実際に使ってみたり、コードを読む等して、一つ一つ判断していけると良いのですが、npmのような粒度で依存モジュールが増えていくと、中々にしんどいものがあります。個人で気楽に作っているツールなら尚更です。

手っ取り早く確認できそうな指標としては、DL数やGitHubのスター数、誰(どこ)が作っているのか、誰(どこ)が使っているのか、メンテされているか、バージョンは1以上か、OSSライセンス等など、いろいろと挙げられそうですが、それすらも一つ一つ確認するのは、やはり面倒です。

そこで↑の作業をサポートしてくれるツールみたいなものを作ろうと思ったのですが、ちょっと調べてみると既に幾つかあったので、まとめてみることにしました。

※ これから紹介するサービスでわかるのは、あくまでも表面的な指標のみです。それらの指標を足がかりとして、深掘りしていくのが良いと思います。

npm trends

スクリーンショット 2016-05-19 2.13.10.png
http://www.npmtrends.com/

npm trends

Compare npm package download counts over time

とあるように、npmパッケージのDL数やGitHubスター数を比較できるサービスです。
デザインがシンプルで見やすいです。

NPMCompare

スクリーンショット 2016-05-19 1.25.57.png
https://npmcompare.com

NPMComparenpm trendsと同じくnpmパッケージ間で比較ができるサービスですが、こちらはDL数やGitHubスター数だけでなく、最終更新日やOSSライセンス、fork数や平均バージョン更新間隔など、情報量が多いです。

Libraries.io

スクリーンショット 2016-05-19 1.30.19.png
https://libraries.io

Libraries.io

Libraries.io monitors 1,456,935 open source libraries across 32 different package managers. You can discover new libraries to use in your software projects as well as be notified of new releases to keep your applications secure and up to date. Find out more

とあるように、npmだけでなく、RubygemsやMavenなど32のパッケージマネージャーで公開されているOSSを横断して検索できるサービスです。
↑2つのサービスのように、サイト上でOSS間の比較はできないですが、Libraries.ioもライセンスやGiHubスター数、最終更新日などを表示してくれます。
さらにLibraries.ioは、幾つかのメトリクス(GitHubのスター数など)に基づき独自にスコアリングもしてくれます。

Google トレンド

スクリーンショット 2016-05-19 1.36.04.png
https://www.google.co.jp/trends/

盛り上がりを可視化するのであれば、Google トレンドも便利です。
ただ、モジュール名によっては結構ノイズが入るので、あくまでも参考値程度に留めておくと良さそうです。

さいごに

あと、今回紹介したサービスでは確認できない指標ですが、npmモジュールの場合、npmサイト上での検索結果ページに表示されるスター数が意外と参考になるらしいです。
(npmのスター機能は、ほとんど使われていないため、本当に良いと思ったものにしかスターがつかない)

↑の件は確か、CodeLunch.fmのThe Node.js Futureという回で話題に挙がっていた気がします。
(再度確認しようと思ったのですが、音声を聞くことができませんでした、、)

ただ、ぱっと見たところ、Node.jsが話題になり出した頃からあるような、息の長いモジュールにスターが多めについているような印象でした。
(以前はnpmのスター機能がそこそこ使われていた?)