code: function buildAll(list) {
        var modulesList = []
          ;
  
        forEachAsync(list, function (next, modulename) {
          makePackageReady(moduleRoot + '/' + 'node_modules' + '/' + modulename, builtIns, function (err, pkg, m, u, v, l, p, b) {
            if (err) {
              console.error('[local#1]', err);
              next();
              return;
              //throw err;
            }
  
            l.forEach(function (module) {
              modulesList.push(render(module, pkg));
            });
  
            next();
  
            /*
            l.forEachAsync(function (next, module) {
              render(function (err, str) {
                modulesList.push(str);
              }, pkg, module));
            }).then(next);
            */
          });
        }).then(function () {
          makePackageReady(moduleRoot, builtIns, function (err, pkg, m, u, v, l, p, b) {
            l.forEach(function (module) {
              modulesList.push(render(module));
            });
  
            fn(null, modulesList.join('\n'));
            
            /*
            l.forEachAsync(function (next, module) {
              render(function (err, str) {
                modulesList.push(str);
              }, pkg, module);
            }).then(function () {
              fn(null, modulesList.join('\n'));
            });
            */
          });
        });
      }
docs: TODO cache npm.commands.view results TODO cache all npm commands (so that builds can be done without internet access)