Bunu Windoc'a C# şeklinde entegre edene kadar hemen, test edebilmeniz ve önerileriniz; ekstra özellikleriniz, hataları söyleyebilmeniz için public bir repo hâline getirmek istedim.
Bu repo genel olarak şunu hedefliyor:
IDE'ye bağımlı olmadan:
Localizasyon destekli, UTF 8 BOM Türkçe karakter destekli.
Bunların hepsini -Preview, -Apply, -File, -OutputDir, -Verbose, -StartIndex, -NextIndex, -StopIndex vb. gibi argümanlarla özelleştirebiliyoruz ve aynı zamanda Config.ini dosyasından istediklerimizi filtreleyip istediğimiz path'leri ekleyip, çıkarabiliyoruz. Strings\ klasöründe tr.ini ve en.ini dilleri var isteğe bağlı ekleyebilirsiniz.
ÖNEMLİ NOT: Siz yine de %100 güvenerek "YEDEK ALMADAN" çalıştırmayın. En azından Windoc'a aynı işlevlerin C# hâlini yapana kadar.
İlk önce projenize ekleyin:
Görseldeki gibi örnek bir dizin: (Eğer config'i ayarlamadan kullanmak isterseniz, Assets\Scripts veya bir başka klasör altına koyun ki varsayılan olarak 2 yukarıya bakıyor bu scriptler)
Kodu çalıştırdığımda:
UTF 8 idi, bu da Türkçe karakterleri bozuyordu. UTF-8 Bom'a düzeltti. Yorum satırlarını ve aralardakı boşlukları sildi.
Şimdi şu anki hâliyle rapor çıkaralım:
Scripts\ klasörünü istisnaya eklemek isterseniz ekleyebilirsiniz. Zaten orta seviye bir projede bile bunları geçeceği için en büyük dosyalara girmez.
Şimdi de build deneyelim:
Tekrar rapor yapınca:
Dosya boyutlarının azaldığını görüyoruz. Tabi az satır olunca fark çok az. Minify yapınca hem boyut azalıyor yâni dolayısıyla kullanıcının sayfayı yükleme hızı artıyor. Aynı zamanda da browser'ın okumasında hız yaşanıyor olabilir.
Scriptlerin hâlâ kusursuz çalıştığını sanmıyorum. Hepsini test edemedim yâni her olasılığı falan ama olabildiğince hataları çözmeye çalıştım. Eğer sizin karşılaştığınız sorun varsa, belirtebilirsiniz. En azından C# versionunu yapınca ona dikkat ederim.
İyi günler ve iyi çalışmalar dilerim!
Bu repo genel olarak şunu hedefliyor:
IDE'ye bağımlı olmadan:
Localizasyon destekli, UTF 8 BOM Türkçe karakter destekli.
- Bütün dosyalar(HTML, ASPX, ASCX, CSS, JS, CS, ASHX, AJAX, XML FILES, INI, PS1) için Comment satırı silici
- Bütün dosyalar için ölü kod bulucu ve siliciler.
- Bütün dosyalar için klonlanan kod bulucu ve siliciler.
- Bütün dosyalar için fazlalık satırları siliciler. "\r\n\r\n..." -> "\r\n", "<blabla/> " -> "<blabla/>", "blabla; " -> "blabla;"
- Bütün dosyalar için duplicate satırları bulucu ve siliciler.
- Bütün dosyalar için satırları silmek. "\r\n" -> "" (Methodlar, proplar vb. boşluklar korunur)
- Bütün dosyalar için formatlama.
- Bütün dosyalar için minify.
- Bütün dosyalar için beatufiy.
- Bütün dosyalar için obfuscating.
- Bütün dosyalar için deobfuscating.
- Frontend dosyalardaki kullanılmayan id, sınıfları bulucu ve siliciler.
- JS dosyalardaki methodları bulucu ve siliciler.
- CSS dosyalardaki stilleri bulucu ve siliciler.
- CSS dosyalarındaki keyframe ve media'ları birleştirip dosyanın en altına sıralı bir şekilde kaydeder.
- Bütün temp(seçmiş olduğunuz klasörler. Default olarak %temp%, temp ve ASP compiler temp) dosyalarını silici.
- Bütün dosyalar için optimizasyon (boşlukları silici, yorum satırlarını kaldırıcı, media yapısını düzeltici ASP compiler vb.)
NOT: Optimize edince ve minify yapınca, özellikle mobil kullanıcılar için ciddi şekilde performans artışı yaşarsınız.
Dosya boyutu hatrı sayılacak kadar azalıyor. - Projeyi build edici. (Optimizasyon, Minify, Obfuscation vb.)
- Proje hakkında ayrıntılı rapor çıkarıcı. (Kaç satır, kaç boyutunda vs.)
- Ve biraz da gereksiz ama iş görebilecek scriptler.
Bunların hepsini -Preview, -Apply, -File, -OutputDir, -Verbose, -StartIndex, -NextIndex, -StopIndex vb. gibi argümanlarla özelleştirebiliyoruz ve aynı zamanda Config.ini dosyasından istediklerimizi filtreleyip istediğimiz path'leri ekleyip, çıkarabiliyoruz. Strings\ klasöründe tr.ini ve en.ini dilleri var isteğe bağlı ekleyebilirsiniz.
ÖNEMLİ NOT: Siz yine de %100 güvenerek "YEDEK ALMADAN" çalıştırmayın. En azından Windoc'a aynı işlevlerin C# hâlini yapana kadar.
İlk önce projenize ekleyin:
Görseldeki gibi örnek bir dizin: (Eğer config'i ayarlamadan kullanmak isterseniz, Assets\Scripts veya bir başka klasör altına koyun ki varsayılan olarak 2 yukarıya bakıyor bu scriptler)
Kodu çalıştırdığımda:
UTF 8 idi, bu da Türkçe karakterleri bozuyordu. UTF-8 Bom'a düzeltti. Yorum satırlarını ve aralardakı boşlukları sildi.
Şimdi şu anki hâliyle rapor çıkaralım:
Scripts\ klasörünü istisnaya eklemek isterseniz ekleyebilirsiniz. Zaten orta seviye bir projede bile bunları geçeceği için en büyük dosyalara girmez.
Şimdi de build deneyelim:
Tekrar rapor yapınca:
Dosya boyutlarının azaldığını görüyoruz. Tabi az satır olunca fark çok az. Minify yapınca hem boyut azalıyor yâni dolayısıyla kullanıcının sayfayı yükleme hızı artıyor. Aynı zamanda da browser'ın okumasında hız yaşanıyor olabilir.
Scriptlerin hâlâ kusursuz çalıştığını sanmıyorum. Hepsini test edemedim yâni her olasılığı falan ama olabildiğince hataları çözmeye çalıştım. Eğer sizin karşılaştığınız sorun varsa, belirtebilirsiniz. En azından C# versionunu yapınca ona dikkat ederim.
İyi günler ve iyi çalışmalar dilerim!