@Override
protected NodeTask newTask(FrontendPluginFactory factory, Config conf, ProxyConfig proxy,
Map<String, String> env, String nodeVersion) throws InstallationException {
Function<String, String> property = key -> conf.hasPath(key) ? conf.getString(key) : null;
factory.getNPMInstaller(proxy)
.setNpmVersion(npmVersion)
.setNodeVersion(nodeVersion)
.setNpmDownloadRoot(conf.getString("npm.downloadRoot"))
.setUserName(property.apply("npm.username"))
.setPassword(property.apply("npm.password"))
.install();
NpmRunner npm = factory.getNpmRunner(proxy, conf.getString("npm.registryURL"));
return (cmd, args) -> {
String cmdline = cmd + " " + Arrays.asList(args).stream().collect(Collectors.joining(" "));
npm.execute(cmdline, env);
};
}