У обфускаторов помимо размера и скорости выполнения кода есть еще один важный недостаток - если там где-то будет undefined или ошибка, то даже человек, который наизусть знает исходники, не сможет понять где именно проблема.
Когда я использовал js + gcc и ловил в проде undefined или какую-то другую проблему, то у меня была возможность понять что это за место в коде, так как я знал исходники. Я просто искал рядом какие-нибудь строки и таким образом ориентировался. У меня даже была возможность дебажить.
После обфускатора же будет просто черный ящик.
Поэтому идеальный для меня вариант - переименовать все функции и переменные.
После GCC нельзя осознать код, так как он убирает оттуда все слова, а вся семантика заключается в них.
Может есть state of the art подход для продакшн кода? Как делают крупные международные проекты, у которых frontend это важная часть IP (Intellectual property), например Miro?
p.s. это может казаться overhead, но мне важно аргументировано выбрать правильный способ, чтобы исключить вероятность reverse engineering и защитить IP
Моя основная мотивация - сделать невозможным анализ и переиспользование моего кода взятого в проде. (Размер бандла меня не интересует)
Следовательно, моя текущая позиция - что нужно, чтобы были переименованы все методы и переменные.
Я уже использовал GCC на большом проекте с webpack + javascript. Там была пара особенностей, но все работало, а здесь я столкнулся с проблемой, которую создает процесс сборки.
Когда я использовал js + gcc и ловил в проде undefined или какую-то другую проблему, то у меня была возможность понять что это за место в коде, так как я знал исходники. Я просто искал рядом какие-нибудь строки и таким образом ориентировался. У меня даже была возможность дебажить.
После обфускатора же будет просто черный ящик.
Поэтому идеальный для меня вариант - переименовать все функции и переменные.
После GCC нельзя осознать код, так как он убирает оттуда все слова, а вся семантика заключается в них.