/ / Jaki jest najlepszy sposób na posiadanie wszystkich szablonów szkieletu w jednym pliku JS, aby można go było umieścić w CDN? - javascript, ruby-rails, backbone.js, underscore.js

Jaki jest najlepszy sposób na posiadanie wszystkich szablonów szkieletu w jednym pliku JS, aby można go było umieścić w CDN? - javascript, ruby-rails, backbone.js, underscore.js

Chciałbym mieć wszystkie szablony szkieletów w jednym pliku JS, aby móc je łatwo dystrybuować za pośrednictwem CDN. Idealnie powinien działać także z przepływem pracy Rails Compile.

Możliwe rozwiązanie nr 1:

Pojedynczy plik JS ze wszystkimi szablonami zadeklarowanymi jako takie:

app.templates.view = " 
<h3>something code</h3> 
";

Zbyt brudno. Brak podświetlania.

Możliwe rozwiązanie nr 2:

Pojedynczy plik html ze wszystkimi wbudowanymi szablonami. Dołącz część do mojego głównego dokumentu.

<script type="text/template" id="list-item">
<li><%= item %></li>
</script>

Nie mogę korzystać z zalet zminimalizowanego pliku JS rozprowadzanego przez mój CDN. Szablony będą zgodne z moim plikiem HTML.

Możliwe rozwiązanie nr 3:

Użyj Require.js, ale wydaje się, że nie rozwiązuje to konieczności uwzględnienia wszystkich szablonów w pojedynczym pliku JS.

Odpowiedzi:

0 dla odpowiedzi № 1

Spojrzeć na Dróżnik. Daje ci to naprawdę przyjemny przepływ pracyopracowywanie klientów JavaScript. Jest to po prostu zbiór zadań Grunt zagregowanych w super prosty przepływ pracy. Jedną z rzeczy, które robi to jest kompilacja wszystkich szablonów podkreślenia (lub kierownic) w JST (np. Rails). W tym celu używa "grunt-contrib-jst" i wysyła szablony do "generated / template / underscore.js". Następnie kompiluje wszystkie pliki JS w jeden plik, ale można łatwo wprowadzić osobno pliki .js.

Może wskazać ci właściwy kierunek.


0 dla odpowiedzi nr 2

Dzięki za odpowiedzi. Skończyłem z możliwym rozwiązaniem nr 2, w którym mam kilka szablonów i zawartych w pliku głównym przy użyciu części Railsowych. Na razie dystrybucja szablonów za pośrednictwem CDN nie przynosi większych korzyści.

* Nie zdecydowałem się na użycie Grunta, ponieważ myślę, że to dodaje dodatkowej złożoności w przepływie pracy, biorąc pod uwagę, że wszyscy twórcy w zespole muszą przyjąć nowy obieg pracy.