LoginSignup
7
6

More than 5 years have passed since last update.

yarnで依存パッケージのライセンスを出力・保存する

Last updated at Posted at 2018-02-05

yarnバージョン:v1.3.2

yarnには全依存パッケージのライセンス条項文を出力するというnpmには無い機能があります。
yarn licenses generate-disclaimer

普段の開発では使い所は無いですが、electron等で作ったアプリを配布時、ライセンスファイルを添付する際に便利です。

出力自体は上のコマンドでいけるものの、保存はどうするのか気になってましたが、標準出力なのでnode.jsだと以下のような感じで内容を保存することができます。

license-output.js
const exec = require('child_process').exec;
const fs = require('fs');
const outputFilePath = "THIRD_PARTY_LICENSES.txt";

exec('yarn licenses generate-disclaimer --ignore-platform  --ignore-optional --ignore-engines', {maxBuffer: 400*1024}, (err, stdout, stderr)=> {
  if (err || stderr) {
    console.log("execエラー");
    throw err || stderr;
  };

  fs.writeFile(outputFilePath, stdout, (err)=> {
    if (err) {
      console.log("書き込みエラー");
      throw err;
    } else {
      console.log("完了!")
    }
  })
});

実行
node license-output

※ バッファオーバーエラーを防ぐため、オプションでmaxBufferの上限を上げてます。文書量に応じて適宜変えて下さい。
※ --ignore-なんちゃらのオプションは、冒頭に"info: ...The platform "win32" is incompatible with this module."みたいなエラー文が入ってしまうのを防ぐためにつけてます。

7
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6