Это имеет смысл к obsfucate JavaScript? Единственные ясные преимущества, которые я вижу, состоят в том, чтобы скрыть код (хотя несобственнический по своей природе, так как это является клиентским) от любопытных глаз и как минимизатор с тех пор часто, JavaScript obsfucators делает минимизацию также.
Я не думаю, что обфускация JavaScript стоит усилий для целей сокрытия в большинстве общих сценариев. Однако минификация того стоит по многим причинам, которые, как вы упомянули, также имеют незначительный побочный эффект запутывания кода.
Что ж, если бы это не какой-то передовой код javascript, который нелегко копировать и воспроизводить, и сценарий не слишком велик в байтах, я бы не стал беспокоиться. Немного хлопотно делать запутывание каждый раз, когда вам нужно развертывание, и выгода небольшая.
То есть скрипт не слишком большой, и код не нужно защищать.
(даже обфускация на самом деле не защищает ваш код, просто затрудняет его понимание)
Я использовал YUI Builder, он мне нравится для значительного уменьшения размера моего javascript. Так что аспект минимизации обфускации очень полезен сам по себе.
Что касается безопасности, я полагаю, что чем угодно, что вы можете сделать, чтобы злоумышленнику было сложнее понять, как работает ваш материал, тем лучше вам будет.
Наконец, большинство обсфускаторов выдают предупреждения или ошибки, когда сталкиваются с плохо написанным javascript, и в целом также улучшают качество вашего кода.
Итак, подведем итог
Минусы: Вам нужно запустить обфускатор.
Плюсы:
В библиотеке Dojo есть компонент под названием ShrinkSafe. Он сжимает ваш файл JavaScript и немного обфусцирует код. Таким образом, вы можете хранить оригиналы где-нибудь, а затем выпускать только те, которые прошли через ShrinkSafe.
Я не думаю, что это стоит того, потому что любой, кто достаточно мотивирован, чтобы получить ваш код, все еще может получить его. Что касается минимизации, я не беспокоюсь, так как gzip устраняет необходимость в этом.
Обфускация - это побочный эффект минимизации. Ваши переменные, функции и т. Д. Переименованы до минимально возможной длины для экономии места. В противном случае минимизаторы были бы просто средством удаления пробелов.
Хотя определенно можно сказать, что делает ваш код, даже если он был запутан, кому-то будет гораздо труднее «случайно» взглянуть на ваш код.