npmでインストールしたOSSのライセンスを調べたい
こんにちわ、かねこです。
今回は最近業務でnpmでインストールしたOSSのライセンスを調べる機会があったので、そのやり方を自分自身のメモがてら記事に残そうと思います〜
license-checkerをインストール
OSSのライセンスを調べられるパッケージである、license-checker
をグローバルにインストールする。
npm install -g license-checker
ツールなので、グローバルインストールで問題ないが他のメンバーなどに共有したい等であれば、プロジェクト単位でインストールするのもいいと思います。
ただ、license-checker
も自身の依存ツリーも結果に出てきてしまうので、注意。
実践
プロジェクト内でlicense-checker
を実行する。
├─ @aashutoshrathi/word-wrap
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/aashutoshrathi/word-wrap
│ ├─ publisher: Jon Schlinkert
│ ├─ url: https://github.com/jonschlinkert
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@aashutoshrathi/word-wrap
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@aashutoshrathi/word-wrap/LICENSE
├─ @babel/code-frame
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/babel/babel
│ ├─ publisher: The Babel Team
│ ├─ url: https://babel.dev/team
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/code-frame
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/code-frame/LICENSE
├─ @babel/helper-validator-identifier
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/babel/babel
│ ├─ publisher: The Babel Team
│ ├─ url: https://babel.dev/team
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/helper-validator-identifier
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/helper-validator-identifier/LICENSE
├─ @babel/highlight
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/babel/babel
│ ├─ publisher: The Babel Team
│ ├─ url: https://babel.dev/team
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/highlight
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/highlight/LICENSE
├─ @babel/runtime
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/babel/babel
│ ├─ publisher: The Babel Team
│ ├─ url: https://babel.dev/team
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/runtime
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@babel/runtime/LICENSE
├─ @emotion/cache
│ ├─ licenses: MIT
│ ├─ repository: https://github.com/emotion-js/emotion/tree/main/packages/cache
│ ├─ path: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@emotion/cache
│ └─ licenseFile: /Users/kanekoryouma/developments/homepage-create-template/node_modules/@emotion/cache/LICENSE
なんかいっぱい出てきた。
プロジェクトの直接の依存パッケージであるlicense-checkerだけでなく、その依存ツリーのパッケージ全てが出力されます。
devDependencies
のパッケージは別に出力されなくてもいいので、--production
オプションを指定するとdependencies
だけが出力されます。
また、直接の依存パッケージのみを出力する--direct
というオプションもあるのですが、最新バージョンのv25.0.1
だとうまく機能しませんでした、、、(残念)
便利そうなオプション
license-checkerには上で紹介したオプション以外にも色々オプションがあるので、githubを見てみたり、
license-checker --help
でオプションの一覧が確認できます。
個人的によく使いそうだなと思ったオプションだけ一部紹介いたします。
オプション | 内容 |
---|---|
--summary | ライセンス毎のサマリーを表示させる。とりあえず、ライセンスの種類を把握するのに良さそう |
--production | dependenciesのみを表示させる。ライセンス一覧を表示させるページが必要な場合はこのオプションを使えば良さそう |
--json | JSON形式で出力してくれる |
--csv | CSV形式で出力してくれる |
最後に
今回は、npmでインストールしたOSSのライセンスを調べる方法について紹介させていただきました。
今までOSSのライセンスを調べることがなかったので、いい機会でした✨
今後もこういった自分の困りポイントだったり設定手順だったりを発信していけたらなと思います🐈
最後にtoraco株式会社では2024年11月1日にエンジニア向けのコミュニティを立ち上げました。
Discord のサーバーで運営しており、以下のリンクから無料で参加できます。コミュニティ内では以下のような投稿・活動がされます!
Discussion