url: findNodeHomepage()

in tasks/generate-license-data.js [183:212]


                url: findNodeHomepage(name, path, errors, metadata),
                license: findNodeLicense(name, path, errors, metadata),
                type: dependencyType,
                scope: dependencyScope
            });

        }

        // add child to the queue
        queue.push({ path: path + '/node_modules/' + name,
                     dependencyName: name,
                     dependencyScope: DEPENDENCY_SCOPE.TRANSITIVE, // all child dependencies are by definition transitive
                     dependencyType: dependencyType,
                   });
    }

    function nodePackageExists(rootPath, name) {
        var packageDir = rootPath + '/node_modules/' + name;
        return grunt.file.exists(packageDir);
    }

    function findNodeAttribute(name, rootPath, attribute) {
        var packageFile = rootPath + '/node_modules/' + name + '/package.json';
        return findAttribute(packageFile, attribute);
    }

    function findAttribute(packageFile, attribute) {
        if (grunt.file.exists(packageFile)) {
            var packageData = grunt.file.readJSON(packageFile, { encoding: 'UTF-8' });
            if (packageData[attribute] != null) {