performans - Tsc aracılığıyla TypeScript'i dönüştürürken, dönüştürme hızını artırmak için tür kontrollerini devre dışı bırakmak mümkün mü?
TypeScript, sadece bir dosya değişmiş olsa bile, tüm kod tabanını derlerken kontrol eder. Küçük projeler için bu sorun değil, ancak kod tabanımız büyüdüğü için oldukça uzun sürüyor.
Geliştirme sırasında birim testlerimin hızlı yanıt süresine sahip olmasını istiyorum. Birim testi mümkün olan en kısa sürede çalıştırılmalıdır.
Ne yazık ki, tsc uzun sürdüğü için birim testinin başlaması için her çalıştırmada yaklaşık 10-15 saniye beklemek zorundayım ve bu sürenin %60-%80'i kontrol üzerinde harcanıyor.
Bu örnek çalıştırmalar sadece bir dosyada bir satır sonu ekleyip çıkarmaktan ibarettir:
yarn tsc v0.27.5
"/home/philipp/fancyProject/node_modules/.bin/tsc" "--watch" "--diagnostics"
Files: 511
Lines: 260611
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 704680K
I/O read: 0.17s
I/O write: 0.09s
Parse time: 2.61s
Bind time: 0.95s
Check time: 7.65s
Emit time: 1.45s
Total time: 12.65s
00:35:34 - Compilation complete. Watching for file changes.
00:41:58 - File change detected. Starting incremental compilation...
Files: 511
Lines: 260612
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 1085950K
I/O read: 0.00s
I/O write: 0.04s
Parse time: 0.68s
Bind time: 0.00s
Check time: 12.65s
Emit time: 1.36s
Total time: 14.69s
00:42:13 - Compilation complete. Watching for file changes.
00:42:17 - File change detected. Starting incremental compilation...
Files: 511
Lines: 260611
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 1106446K
I/O read: 0.00s
I/O write: 0.12s
Parse time: 0.32s
Bind time: 0.01s
Check time: 9.28s
Emit time: 0.89s
Total time: 10.50s
00:42:27 - Compilation complete. Watching for file changes.
Acaba TypeScript'e söylemenin bir yolu var mı?
Her şeyi tamam gibi kabul et ve JavaScript'i mümkün olan en hızlı şekilde diske at.
Öncelikle birim testimin geçtiğinden emin olmak istiyorum ki hızlı bir geri bildirim döngüsüne sahip olayım.
Ve IDE'm zaten üzerinde çalıştığım dosya içindeki tür kontrollerini hallettiği için, transpilasyon kontrolünde nadiren hata yapıyorum. Ve eğer büyük bir sorun olursa, birim testlerim onları yakalamalı.
Projeyi inşa ederken, sadece kontrollerle klasik tsc'yi kullanırdım. Dediğim gibi, bu sadece geliştirme için ve hızlı bir geri bildirim döngüsüne sahip olmak içindir.
Cevap #1
- WebPack kullanmaya başla
- Harika-typescript-yükleyici ekle
- Ayarda
transpileOnlydeğerinitrueolarak ayarlayın
Ayrıca hızı artırabilecek diğer parametreleri de değiştirebilirsiniz: ignoreDiagnostics, forceIsolatedModules, vb.