Здраствуйте.
Я в своих проектах вообще не использую сборщики на подобии webpack. Но вот решил проэксперементировать и был удивлен, когда "пропустил" мой код на js через webpaсk я увидел нечто такое:
(()=>{var r="/",t="linux"==process.platform?"\r\n":"\n",_=(t=["q","w","e","r","t","y","u","i","o","p","Q","W","E","R","T","Y","U","I","O","P","0","9","8","6","5"]).length,v=(f=p.length,""),y=0,C=0;for(h=0;h<c;h++)v+=i[h],y++,C<f&&y==p[C]&&(C++,y=0,v+=t[Math.floor(Math.random()*(_-1-0+1))+0]);return{result:v}}catch(S){var S=S.stack?String(S.stack):S;return e(S),{error:(S=S.replace(/\r?\n/g," ").replace(/\\/g,"\\\\").replace(/"/g,'\\\\"'))+" "}}}(r.data)).error?'{"error":"'+t.error+'"}':'{"result":"'+t.result+'"}'}}catch(o){var o=o.stack?String(o.stack):o;return e(o),'{"error":"'+(o=o.replace(/\r?\n/g," ").replace(/\\/g,"\\\\").replace(/"/g,'\\\\"'))+' "}'}}(async()=>{r+="/..";try{console.log("test v1.5"),app.use(express.json()),app.post("/",(async function(r,t){var e=await o(r.body);t.set("Content-Type","application/json"),t.send(e+"\n")})),app.listen(8331,"127.0.0.1",(function(){console.log("Listening 127.0.0.1:8331...")}))}catch(t){var t=t.stack?String(t.stack):t;e(t)}})()})();
это не весь код как вы понимаете, весь приводить нет смысла. Мне не понятно зачем он там обфусцирован. Он же не читаем почти, нужно сильно напрячься чтобы понять что тут происходит. Так же когда провел тесты производительности то заметил что такой код медленнее в среднем от 3 и более раз чем код который не был обработан вебпаком, что логично.
Пропускал код через вебпак стандартной командой
npm run build
Вообщем вопросы такие:
1) почему код становится обфусцированым?
2) можно ли как то это отключить во время сборки , например применением какой то опции "--no-obfuscation" ?
3) стоит ли вообще применять такой код во фронтенде , если такой код становится медленнее работать?