function rebuildFramework(framework, useCi) {
  const components = framework.split("/");

  if (components.length !== 2) {
    console.log(`ERROR: invalid name ${framework}. It must contain exactly one /.`);
    return false
  }
  console.log("Rebuilding framework", framework);
  const [keyed, name] = components;
  const frameworkPath = path.join("frameworks", keyed, name);

  const filesToDelete = ["yarn-lock", "dist", "elm-stuff", "bower_components", "node_modules", "output"].concat(
    useCi ? [] : ["package-lock.json"]
  );

  deleteFrameworkFiles(frameworkPath, filesToDelete);

  const installCmd = `npm ${useCi ? "ci" : "install"}`;
  runCommand(installCmd, frameworkPath);
  const buildCmd = "npm run build-prod";
  runCommand(buildCmd, frameworkPath);
  return true;
}
@param {string} framework
@param {boolean} useCi