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

執筆者:

関連記事

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

目次1 目的1.1 動作イメージ2 Jenkinsジョブを設定2.1 前提2.2 Jenkins「シェルの実行」を設定2.3 想定外ライセンスが含まれていた場合の通知3 まとめ 目的 前回の続き。On …

mkcertとhttp-serverでHTTPS環境を作りAndroid(chrome)、iPhone(safari)から接続

簡単にパーフェクトなオレオレ証明書が作れるとgithub上で人気上昇中の「mkcert」。 GitHub  135 UsersFiloSottile/mkcerthttps://github …

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

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

Mattermostのチャンネル発言数をMetabaseでビジュアル化する

オンプレGitLabでMattermostを使えるようにした後の活用法として、「ナレッジチャンネル」を運営してチームの知識を共有する営みをしている開発現場も多いと思います。 ミーティングではなくチャッ …

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

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

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯現役技術者を目指しています。健康第一。