code: protected function compressJsFiles($inputFiles, $outputFile)
      {
          if (empty($inputFiles)) {
              return;
          }
          $this->stdout("  Compressing JavaScript files...\n");
          if (is_string($this->jsCompressor)) {
              $tmpFile = $outputFile . '.tmp';
              $this->combineJsFiles($inputFiles, $tmpFile);
              $this->stdout(shell_exec(strtr($this->jsCompressor, [
                  '{from}' => escapeshellarg($tmpFile),
                  '{to}' => escapeshellarg($outputFile),
              ])));
              @unlink($tmpFile);
          } else {
              call_user_func($this->jsCompressor, $this, $inputFiles, $outputFile);
          }
          if (!file_exists($outputFile)) {
              throw new Exception("Unable to compress JavaScript files into '{$outputFile}'.");
          }
          $this->stdout("  JavaScript files compressed into '{$outputFile}'.\n");
      }
docs: Compresses given JavaScript files and combines them into the single one.
  @param array $inputFiles list of source file names.
  @param string $outputFile output file name.
  @throws \yii\console\Exception on failure