fwiw I can do the following to get just a list of needed files with google-closure-deps.
// Assuming in root of closure's git repo:
const {parser, depGraph} = require('google-closure-deps');
// NEW FEATURE: Parse the existing deps.js file, no need to scan all files ourselves.
const deps = parser.parseFile('closure/goog/deps.js').dependencies;
// Note: when we can a deps.js file these don't know what the path on disc is
// of these deps, they only know their closure relative path. So if we tell them
// explicitly what the path to closure is, they can resolve the path on disc.
deps.forEach(d => d.setClosurePath(process.cwd() + '/closure/goog'));
// TODO add more of your own files to "deps" here
// The example on github scans a fake base.js directly with parseText. But we
// want a real one.
// Now that it is set up we can make a dep graph:
const graph = new depGraph.Graph(deps);
// Now we can try getting ever file needed from an entry point (meaning
// we need an entry point for our program). Let's try goog.log:
const glog = deps.find(d => d.closureRelativePath === 'log/log.js');
console.log(graph.order(glog).map(d => d.path).join('\n'));