Только что сделал это для большого проекта, я могу сказать, что это, оказывается, этот процесс больше головной боли, чтобы полностью автоматизировать, чем вы могли бы подумать. Это легко получить многие из них с некоторыми из трюков, перечисленных здесь, но лицензия NPM пакета не публикуется последовательно, и может появиться
- В package.json файл НПМ или
- В файле README (иногда просто имя, например «Лицензия MIT», а иногда и полный текст лицензии в разделе), или
- В отдельном файле LICENSE или COPYING.
Кроме того, вам иногда необходимо ознакомиться с лицензиями, чтобы указать, какая из известных лицензий с открытым исходным кодом соответствует.
Лучший инструмент, который я знаю, как это сделать, что (в отличие от некоторых других ответов здесь) охватывает все эти случаи является licensecheck пакет: https://github.com/marcello3d/node-licensecheck
Он смотрит на package.json, а также общие лицензионных файлов и соответствует ли подпись с известными лицензиями, поэтому он автоматически распознает больше лицензий. Он также «нормализует» лицензии в отношении стандартного списка лицензий SPDX (https://spdx.org/licenses/).
И наконец, Licensecheck также позволяет сохранять любые оставшиеся пакеты, необходимые для проверки вручную в вашем собственном файле license.json (так как вы не можете рассчитывать на внешний файл поддержки, чтобы изменить свой пакет).
Взятый вместе, это довольно надежное решение.
Немного поздно вечеринке, но npm grunt-license делает именно то, что вы хотите - это предполагает, что ворчит или будет использоваться;) –