自動化スクリプトでOSSライセンス管理

TL;DR

スクリプトを組んで出力結果を持っておく。

Background

利用しているOSS、ライセンス、NOTICE文があるかどうかをまとめておきたいが、一つ一つ見るのは面倒くさいので、スクリプトかなにかで一発でやりたいと思った。

やってみる

npmプロジェクトで依存OSSの一覧を出す

簡単だった。コマンド一発でポン。

npm install --production

npx license-checker -production --json --y

注意点として、node_modulesに入ってるモノが漏れ出てしまう可能性があるらしいので、事前にnode_modulesを削除して、npm installをproductionモードで実行する。

その後、license-checkerを実行することで、本番利用(dependencies)のOSSのライセンス一覧がJSON形式で出力される。

  "esbuild@0.25.2": {
    "licenses": "MIT",
    "repository": "https://github.com/evanw/esbuild",
    "path": "C:\\Users\\akagoma\\Documents\\akagoma\\node_modules\\esbuild",
    "licenseFile": "C:\\Users\\akagoma\\Documents\\akagoma\\node_modules\\esbuild\\LICENSE.md"
  }

これで利用しているOSSと、ライセンス、リポジトリが表示される。

 

このデータをCSV化するスクリプトも書いた。

 

npmプロジェクトでNOTICE文の一覧を出す

これはスクリプトを組むのがよかった。(GPTに書かせた)

実行するとTable形式で表示してくれる。

所感

こういう維持保守しなくていい実装はAI活用が冴えるなぁ。と思った。

Copyright (C) 2018-2022 akagoma. All Rights Reserved.