code: public void installIfNotInstalled() throws IOException {
          try {
              factory.getNodeAndNPMInstaller(proxy())
                      .install(mojo.getNodeVersion(),
                              mojo.getNPMVersion(),
                              mojo.getNodeDistributionRootUrl(),
                              mojo.getNpmRegistryRootUrl() + "/npm/-/");
              if (!getNodeExecutable().isFile()) {
                  throw new IOException("Node installation failed - " + getNodeExecutable().getAbsolutePath() + " does not exist");
              }
          } catch (InstallationException e) {
              throw new IOException(e);
          }
      }
docs: Installs node in ~/.wisdom/node/$version.
  The installation process is the following:
  <ol>
  <li>download node</li>
  <li>expand node to the right location</li>
  </ol>
  <p/>
  
  @throws java.io.IOException