HumanifyJS - Как AI помогает разобрать запутанный JavaScript

28 May, 2026
3,209
🔱 203
👥 15

Представьте: вы получаете минифицированный JavaScript файл с непонятными именами переменных вроде a, b, c. Знакомая ситуация? HumanifyJS решает эту проблему с помощью искусственного интеллекта, превращая нечитаемый код в понятный и поддерживаемый.

Что это за инструмент?

HumanifyJS — это утилита для:

  • Декомпиляции минифицированного JavaScript
  • Восстановления осмысленных имен переменных и функций
  • Форматирования кода

Причем делает это не просто механически, а с помощью больших языковых моделей (ChatGPT, Gemini или локальных LLM), которые понимают контекст кода.

Как это работает?

  1. Анализ AST: Сначала код разбирается на абстрактное синтаксическое дерево (AST) с помощью Babel
  2. AI-подсказки: LLM анализирует код и предлагает осмысленные имена для переменных
  3. Трансформация: Babel применяет изменения, сохраняя функциональность кода 1:1

Пример трансформации

До:

function a(e,t){var n=[];var r=e.length;var i=0;for(;i<r;i+=t){if(i+t<r){n.push(e.substring(i,i+t))}else{n.push(e.substring(i,r))}}return n}

После:

Реклама
function splitString(inputString, chunkSize) {
  var chunks = [];
  var stringLength = inputString.length;
  var startIndex = 0;
  for (; startIndex < stringLength; startIndex += chunkSize) {
    if (startIndex + chunkSize < stringLength) {
      chunks.push(inputString.substring(startIndex, startIndex + chunkSize));
    } else {
      chunks.push(inputString.substring(startIndex, stringLength));
    }
  }
  return chunks;
}

Кому это нужно?

  • Разработчикам, работающим с legacy-кодом
  • Аналитикам безопасности, исследующим минифицированные скрипты
  • Фронтендерам, отлаживающим сторонние библиотеки
  • Любому, кто устал разбирать непонятный минифицированный код

Как использовать?

Установка

npm install -g humanifyjs

Три режима работы:

  1. OpenAI/Gemini — самый точный, но требует API-ключей
  2. Локальный — бесплатный, но менее точный и требует мощного железа
  3. Гибридный — можно комбинировать подходы

Пример запуска с ChatGPT:

export OPENAI_API_KEY="ваш_ключ"
humanify openai ваш_файл.js

Плюсы и минусы

Преимущества:

  • Поддержка нескольких LLM (ChatGPT, Gemini, локальные модели)
  • Работает с большими файлами
  • Поддержка Apple M-чипов для ускорения обработки

⚠️ Ограничения:

  • OpenAI/Gemini режимы требуют API-ключей и могут быть платными
  • Локальный режим требует мощного железа
  • Не идеальная точность (но лучше, чем ничего!)

HumanifyJS — это тот инструмент, который хочется иметь под рукой каждому разработчику. Он особенно полезен при:

  • Анализе стороннего кода
  • Работе с унаследованными проектами
  • Исследовании минифицированных библиотек

Попробуйте — и вы удивитесь, сколько времени сможете сэкономить на разборе непонятного кода.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.