class_docstr: Builder for a static task, pulls the appropriate html, builds the frontend (if a
  build doesn't already exist), then puts the file into the server directory.
docstr: Rebuild the frontend for this task.
docstr_tok: ["Rebuild","the","frontend","for","this","task","."]
code: def rebuild_core(self):
      """
      Rebuild the frontend for this task.
      """
      return_dir = os.getcwd()
      os.chdir(self.FRONTEND_SOURCE_DIR)
      if os.path.exists(self.FRONTEND_BUILD_DIR):
          shutil.rmtree(self.FRONTEND_BUILD_DIR)
      packages_installed = subprocess.call(["npm", "install"])
      if packages_installed != 0:
          raise Exception(
              "please make sure npm is installed, otherwise view "
              "the above error for more info."
          )
      webpack_complete = subprocess.call(["npm", "run", "dev"])
      if webpack_complete != 0:
          raise Exception(
              "Webpack appears to have failed to build your "
              "frontend. See the above error for more information."
          )
      os.chdir(return_dir)
  
file_path: ParlAI/parlai/crowdsourcing/tasks/acute_eval/acute_eval_builder.py
imports: from mephisto.abstractions.blueprint import TaskBuilder
  import os
  import shutil
  import subprocess
label_desc: Use image node_id 1 for calling the AcuteEvalBuilder obj's underlying member method code with example usage: obj.rebuild_core() without return types