mikerourke
2/8/2017 - 2:26 AM

Check NPM Dependencies using depcheck

Check NPM Dependencies using depcheck

const fs = require('fs');
const depcheck = require('depcheck');

const options = {
    ignoreBinPackage: false,
    ignoreDirs: [
        'client',
    ],

    parsers: { // the target parsers
        '*.js': depcheck.parser.es6,
        '*.jsx': depcheck.parser.jsx,
    },

    detectors: [
        depcheck.detector.requireCallExpression,
        depcheck.detector.importDeclaration,
    ],

    specials: [
        depcheck.special.eslint,
        depcheck.special.webpack,
    ],
};

depcheck(__dirname, options, (unused) => {
    const unusedItems =
       `{
            "dependencies": ${JSON.stringify(unused.dependencies)},
            "devDependencies": ${JSON.stringify(unused.devDependencies)},
            "missing": ${JSON.stringify(unused.missing)},
            "using": ${JSON.stringify(unused.using)},
            "invalidFiles": ${JSON.stringify(unused.invalidFiles)},
            "invalidDirs": ${JSON.stringify(unused.invalidDirs)}
        }`;
    fs.writeFileSync('dependencies.json', unusedItems);
    console.log('Complete');
});