Obecnie niemożliwe jest, aby twórcy łatwo ze sobą współpracowali. Podczas debugowania minimalizacja i pakowanie są wyłączone, podobnie jak pomijanie pamięci podręcznej. Prowadzi to do każdego twórcy, który dotyka javascripta, który musi otwierać każdy plik javascript i odświeżać zawartość, aby upewnić się, że nie ma w nim żadnych zmian.W jaki sposób buforujesz pojedynczo renderowane pliki podczas debugowania?
Znalazłem parę referencji, które moim zdaniem mogły zadziałać, ale żadna z implementacji jeszcze się nie sprawdziła.
Po pierwsze, należy zastosować transeform do poszczególnych pakietów za pomocą IBundleTransform
.
Public Class DebugCacheBuster
Implements IBundleTransform
Public Sub Process(context As BundleContext, response As BundleResponse) Implements IBundleTransform.Process
If BundleTable.EnableOptimizations Then
Exit Sub
End If
For Each file As BundleFile In response.Files
file.IncludedVirtualPath &= GetPathHash(HostingEnvironment.MapPath(file.IncludedVirtualPath))
Next
End Sub
End Class
To wyglądało obiecująco, ale nie udało mi się go uruchomić. Próbowałem dodać nową instancję tej klasy do konstruktora każdego pakietu, a także próbowałem zapętlić wszystkie pakiety po ich utworzeniu. Moje punkty krytyczne są trafione i wydaje się, że zaktualizowano IncludedVirtualPath
. Po kontynuowaniu renderowania ścieżki nie są aktualizowane.
Próbowałem również utworzyć niestandardową VirtualPathProvider
i niestandardową VirtualFile
i przeskoczyć ścieżkę VirtualPath, aby zwrócić poprawną wartość, ale ponownie, gdy była renderowana, ścieżka była pusta.
Czy zrobiłem coś nie tak z transformacją? Czy istnieje inny sposób wdrożenia tego?