Check npm dependencies' package.json for license compatibility (aka compliance check) with the current project based on spdx notation and naming conventions.
Does a simple comparison like Public Domain > Permissive > Weakly Protective > Strongly Protective > Network Protective of the primary dependencies in node_modules (no recursive search). Checks for unlicensed or unknown licenses.
Screenshot with sample data (some licenses changed for demo)
npm install license-compatibility-checker -g
or better
npm install license-compatibility-checker --save-dev
or
npm install https://github.com/HansHammel/license-compatibility-checker.git --save-dev
In your project folder run
license-compatibility-checker
or
lcc PATH_TO_PACKAGE_JSON
or (win)
.\node_modules\.bin\lcc ..\droppy\package.json c:/l/droppy/node_modules
or (*nix)
./node_modules/.bin/lcc PATH_TO_PACKAGE_JSON PATH_TO_MODULES
etc.
Supports to optional parameters:
Paths can be relative to the CWD and/or mixed Win/nix-style
var lcc = require('license-compatibility-checker');
var path = require('path');
lcc.check(path.join(process.cwd(),'package.json'), path.join(process.cwd(),"node_modules"),function(/*error*/ err,/*boolean*/ passed,/*string*/ output){
if (err) console.log(err);
else if (passed)
{
//No license issues found
console.log(output);
} else
{
//License issues found
console.log(output);
//process.exit(1);
//or
//throw new Error('License issues found');
}
});
var lcc = require('license-compatibility-checker');
var path=require('path');
lcc.check(path.join(process.cwd(),'package.json'), path.join(process.cwd(),"node_modules"));
use without warranty
Based on license-compatibility ruby gem by Libraries.io