CLI утилита для проверки лицензий используемых зависимостей. По умолчанию разрешены библиотеки со свободными лицензиями
Проблема: существуют "вирусные" лицензии, которые могут накладывать ограничения на финальный код. Например, использование библиотеки с "вирусной" лицензией может потребовать от правообладателя итогового продукта раскрытия исходных кодов, что недопустимо в коммерческом ПО.
license-checker
В случае, если присутствует недопустимая лицензия, команда yarn install
выполнится с ошибкой exit code 1
.
В этом случае можно посмотреть логи, либо просто выполнить скрипт license-checker
в консоли
Аргумент | Значение по умолчанию | Описание |
---|---|---|
--exclude | Перечисление имен библиотек через ";" которые используют не свободные лицензии, использование которых согласовано |
npm install --save-dev @i-novus/license-checker
или
yarn add --dev @i-novus/license-checker
{
"scripts": {
"postinstall": "license-checker"
}
}
Библиотека axe-core использует лицензию Mozilla Public License, version 2.0 (MPL 2.0),
которая не является "вирусной", но и не открытая. При использовании кода опубликованного под этой лицензией,
есть требование по раскрытию итогового кода ПО, что является недопустимым (пункты 3.1 и 3.2).
Однако, т.к. axe-core
используется в eslint-plugin-jsx-a11y
(линтинг кода) и код axe-core
не попадает в итоговую сборку,
то библиотека может использоваться при создании коммерческого ПО без раскрытия исходного кода.
В этом случае запуск команды будет выглядеть так:
Библиотека tsc-watch использует под капотом map-stream версию 0.1.0, она битая с точки зрения лицензии. Нужно резолвить версию 0.0.5, она полностью идентична, но содержит MIT лицензию.
license-checker --exclude axe-core