2013-01-15 10 views
5

Używam, do tego momentu, MS Ajax Minifier do zgniatania i łączenia moich CSS i JS. Moje serwery ustawiają przyszłe przyszłe nagłówki, więc potrzebuję strategii wygaśnięcia pamięci podręcznej. Obecnie ręcznie zarządzam wersjonowaniem tych elementów, zmieniając nazwę pliku, aby wygasać w każdym wydaniu.MSBuild minify i concat javascript, zawartość hash do nazwy pliku

Chciałbym zautomatyzować to nieco, szczególnie przez dołączenie skrótu zawartości pliku do nazwy zgniecionego pliku. Dodatkowe punkty, jeśli będziemy mogli zaktualizować plik XML konfiguracji (istniejący w innym projekcie) z tą zaktualizowaną nazwą pliku

Używamy serwera budowania TFS, więc myślę, że to powinno być opakowane w zadanie MSBuild? Czy mogę po prostu uruchomić go jako etap projektu przed/po kompilacji?

Byłbym bardzo wdzięczny, gdyby ktoś miał wiedzę w tej dziedzinie, którą chętnie udostępnia.

Dzięki

+0

Czy możesz wyrazić opinię na temat mojej odpowiedzi? Jestem tu nowy i próbuję się poprawić. Dziękuję Ci! –

+0

Możesz spróbować https://github.com/vincpa/RxLoader –

Odpowiedz

3

pewnością można zrobić to wszystko z MSBuild:

  • stworzyć swój Ajax Minifier Manifest Files. Zachowałbym te statyczne i wersjonowane.
  • Tworzenie jeden msbuild script zawierające:

    1 - Ajax Minifier Manifest Task zrobić zgniatania i łączenia.

    2 - Hashing zadanie. Jak widać, jest to kod C#. Zmień kod, aby odczytać folder wyjściowy ustawiony w kroku "1" i zmień nazwę plików, dodając do każdego obliczony skrót.

  • Import utworzony skrypt msbuild do projektów lub do głównego skryptu kompilacji, jeśli taki posiadasz.

+0

Przepraszamy za opóźnienie w komentarzu. Twoja odpowiedź jest w porządku, jeśli chodzi o odpowiedzi, po prostu nie miałem czasu, aby przejść przez wszystkie twoje punkty, ale przepraszam.Zrobię to w tym tygodniu – WickyNilliams

2

Czy brałeś pod uwagę funkcję łączenia i minimalizacji w System.Web.Optimization?

http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification

Należy zrobić wszystko, co musisz bez konieczności konserwacji msbuild.

Nie dotyka oryginalnych plików i zmienia wartość skrótu pakietu na kompilację. Ponadto można go programowo wyłączyć w witrynie na żywo, aby umożliwić debugowanie css i js na aktywnych witrynach z zachowaniem wszystkich oryginalnych nazw plików i komentarzy.

Używamy go z powodzeniem i zachęcam programistów UI do dzielenia plików css i javascript na mniejsze i bardziej logicznie nazwane pliki i pozostawienie w nich więcej niż niewielkich komentarzy do dokumentacji. Użytkownik końcowy zawsze otrzyma ostatecznie pojedyncze css i js, które mają inną nazwę dla każdej kompilacji.

+1

Niestety nie jest to odpowiednie dla moich celów, ponieważ moje skrypty i CSS są przechowywane na CDN, a ja wolę takie rzeczy w czasie budowania raczej w czasie wykonywania. Na marginesie: Używam sourcemaps do debugowania CSS/JS produkcji, pozwala na debugowanie skryptów minified/concat, tak jakby były one unminified/unconcat'd! Jeśli nie natknąłeś się na te, sprawdź je, bardzo fajne – WickyNilliams

Powiązane problemy