CI jenkins mattermost nodejs

Nodeアプリが依存するnpmモジュールライセンスをlicense-checker & Jenkinsで自動チェック(1)

投稿日:2019年5月2日

目的

ionicやNode.jsアプリが依存するライブラリにライセンス違反が無いか自動的にチェック、GPLやAGPLが入ってしまっていないか直ぐ分かるようにします。

使用するnpmモジュール

bower時代は「bower-license」が同目的で使えるモジュールでしたがnpm一本化の流れになってからは「license-checker」を使っています。

npm install -g license-cheker

ライセンスを表示してみる

サマリで出す

package.jsonがあるプロジェクトルートに入り、以下コマンドで開発時依存を抜いた本番環境に乗るライブラリのサマリを取れます。

$ license-checker --production --summary
├─ MIT: 129
├─ Apache-2.0: 20
├─ ISC: 11
├─ MIT*: 4
├─ BSD: 4
├─ Unlicense: 2
├─ BSD-3-Clause: 2
├─ Apache*: 2
├─ UNKNOWN: 1
├─ LGPL: 1
├─ BSD-3-Clause OR MIT: 1
├─ BSD*: 1
└─ Apache: 1

CSVファイルで出す

1プロダクト毎にライセンス表示が必要な場合に重宝します。

$ license-checker --production --csv --out ./license.csv

$ head ./license.csv
"module name","license","repository"
"@angular/animations@4.4.4","MIT","https://github.com/angular/angular"
"@angular/common@4.4.4","MIT","https://github.com/angular/angular"
"@angular/compiler-cli@4.4.4","MIT","https://github.com/angular/angular"
"@angular/compiler@4.4.4","MIT","https://github.com/angular/angular"
"@angular/core@4.4.4","MIT","https://github.com/angular/angular"
"@angular/forms@4.4.4","MIT","https://github.com/angular/angular"
"@angular/http@4.4.4","MIT","https://github.com/angular/angular"
"@angular/platform-browser-dynamic@4.4.4","MIT","https://github.com/angular/angular"
"@angular/platform-browser@4.4.4","MIT","https://github.com/angular/angular"

まとめ

ライセンス条項を入れておきさえすれば使って怒られそうなものは見当たりませんでした。次回はJenkinsで自動化し、意にそぐわないライセンスがあれば通知させるようにします。

-CI, jenkins, mattermost, nodejs

執筆者:

関連記事

podmanとNode.js公式コンテナイメージでnodeコマンドを使う

REHL8(CentOS8)からデフォルトインストールされるようになったpodmanでnodeコマンドが使える環境を作ってみます。 目次1 環境2 やること3 Node.jsイメージの導入4 コンテナ …

http-serverコマンドでHTTPS、CORSサーバをたてる

「フロントエンドをHTTPS化してHTTP公開しているREST APIに接続したい、でも自分のPCにApacheやNginxを入れてHTTPS化するのは面倒くさい」 開発中ってこういうニーズと悩みが結 …

Angular4.4のHTTP通信処理にタイムアウトを設定をすると「timeout is not a function」エラーが発生する

目次1 事象2 原因3 対処4 まとめ 事象 Angular4.3で追加されたHttpClientModuleに移行せず、HttpModuleを使い続けているアプリで、とある理由からpackage-l …

Mac、Linux、Windows(WSL無し環境)でNode.jsバージョン切り替え方法を統一したい

一時期ローカルPCにインストールされたNode.jsのバージョンを切り替えるツールが乱立してどれを選べばいいの状態で、当然オプションも違うのでOSによって違うツールが入っているとオプションを覚えるのが …

ブラウザから起動したカメラの撮影画像をjavascriptで圧縮【Compressor.js】

「モバイル用Webアプリで撮影したカメラ画像のファイルサイズが大きすぎる・・・」 そんな悩みは無いですか? 昨今カメラ会社の経営が傾くほどスマホのカメラ性能が向上、それに応じて年々ファイルサイズも増大 …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。