@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); }; }