@Override public void configure(final Env env, final Config conf, final Binder binder)
throws Throwable {
Path userdir = Paths.get(System.getProperty("user.dir"));
Path workDirectory = Optional.ofNullable(this.workDirectory)
.orElse(userdir);
Path installDirectory = Optional.ofNullable(this.installDirectory).orElse(workDirectory);
ProxyConfig proxy = new ProxyConfig(proxies(conf));
CacheResolver cache = Files.exists(userdir.resolve("pom.xml"))
? new MavenCacheResolver()
: null;
FrontendPluginFactory factory = new FrontendPluginFactory(workDirectory.toFile(),
installDirectory.toFile(), cache);
installNode(conf, nodeVersion, proxy, factory);
Map<String, String> environment = environment(conf);
NodeTask task = newTask(factory, conf, proxy, environment, nodeVersion);
onSyncPackageJson(conf, workDirectory, task::executeSync);
if (onStart == null && onStarted == null) {
onStart = cmd -> cmd.execute("run", "build");
}
if (onStart != null) {
env.onStart(() -> onStart.accept(task));
}
if (onStarted != null) {
env.onStarted(() -> onStarted.accept(task));
}
}