Skip to content

Poliklot/PoliObfusKlot

Repository files navigation

PoliObfusKlot

npm version npm downloads License

PoliObfusKlot — это инструмент для обфускации имен CSS-классов в вашем проекте. Он помогает защитить ваш код, уменьшая вероятность его чтения и понимания сторонними лицами, а также уменьшает размер файлов за счет сокращения имен классов.

Особенности

  • 🔒 Обфускация CSS, HTML и JS файлов: Инструмент проходит по вашим файлам и заменяет имена классов на обфусцированные версии.
  • 💡 Поддержка сложных селекторов и шаблонных строк: Правильно обрабатывает различные случаи использования классов в коде.
  • ⚙️ Настраиваемая конфигурация: Вы можете указать, какие директории и файлы обрабатывать, а какие исключать.
  • 🚀 Совместимость с современными стандартами: Поддерживает JavaScript с использованием JSX и TypeScript.

Установка

Установите пакет как зависимость для разработки с помощью npm:

npm install --save-dev poliobfusklot

Использование

Шаг 1: Создайте файл конфигурации

Создайте файл poliobfusklot.config.json в корневой директории вашего проекта со следующим содержимым:

{
  "css": {
    "directories": ["./css"],
    "extensions": [".css"],
    "exclude": []
  },
  "html": {
    "directories": ["./"],
    "extensions": [".html"],
    "exclude": []
  },
  "js": {
    "directories": ["./js"],
    "extensions": [".js"],
    "exclude": []
  }
}

Измените пути и расширения в соответствии с вашим проектом.

Шаг 2: Запустите обфускацию

В командной строке выполните:

poliobfusklot --config poliobfusklot.config.json

Или, если вы установили пакет локально:

npx poliobfusklot --config poliobfusklot.config.json

Дополнительные параметры

  • --config: Путь к файлу конфигурации. Если не указан, по умолчанию ищется poliobfusklot.config.json в текущей директории.

Пример конфигурации

{
  "css": {
    "directories": ["src/styles"],
    "extensions": [".css", ".scss"],
    "exclude": ["src/styles/vendor"]
  },
  "html": {
    "directories": ["public"],
    "extensions": [".html"],
    "exclude": []
  },
  "js": {
    "directories": ["src/scripts"],
    "extensions": [".js", ".jsx"],
    "exclude": ["src/scripts/vendor"]
  }
}

Сохранение отображения классов

После обфускации создается файл classMappings.json, содержащий отображение исходных имен классов на обфусцированные. Этот файл полезен для отладки, но не рекомендуется включать его в продакшен-сборку.

Известные ограничения

  • ⚠️ Инструмент не обрабатывает динамически сформированные имена классов, которые создаются во время выполнения.
  • ⚠️ Если вы используете шаблоны или фреймворки, которые генерируют HTML на сервере, убедитесь, что обфускация не нарушает их работу.

Вклад

Если вы хотите внести свой вклад в проект, ознакомьтесь с руководством по участию.

Лицензия

Этот проект лицензирован под лицензией MIT — подробности смотрите в файле LICENSE.

Разработано с ❤️ by Poliklot.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published