import Path from 'path' import env from './Environment' import os from 'os' import fs from 'fs' class NpmManager{ static load(/* function */ progress){ if(NpmManager.$init) return NpmManager.npm= env.getNpm(progress) NpmManager.$init= true } static install(/* object */ options, /* string */ name){ var npm= NpmManager.npm var task= new core.VW.Task() var result={} var installed= result.installed=[] npm.load(options, (er)=>{ if(er){ task.exception= er return task.finish() } name= name?[name]:[] npm.commands.install(name, (er)=>{ if(er){ task.exception= er return task.finish() } task.result= result task.finish() }) npm.registry.log.on("log", function(message){ //vw.log(message) if(message && message.prefix=="finalize"){ installed.push({ path: message.message, module: Path.basename(message.message) }) } }) }) return task } } export default NpmManager