İşte Arka ederken bu a yapmak için baktı başka seçenekler vardır. Bunları tanımlamak için bir adlandırma kuralı (* .ko.html) kullanıyorum. Benim inşa zinciri şöyledir:
Adım 1: Lint ve küçültmek * .ko.html dosyaları Bu sadece (<!-- ko -->
olanlar hariç) yorumları kaldırmak ve daha kompakt yük için ekstra boşluk şerit etmektir.
Adım 2: Minimize edilmiş html'yi bir js dosyasına dizgeleyin ve karıştırın. js o yüklenebilir bu şekilde basit bir <script>
etiketi yerine bir ajax get + enjekte kullanarak çünkü <script type="text/plain">
sınırlayıcı ile bir html dosyası içine birleştirerek düşünün ama js seçtiniz
var templates={
'name1':'some stringified html',
'name2':'some more'
};
şöyle görünür.
Adım 3: js nesnesinden şablon almak için yerel şablon altyapısını düzeltin.
var engine = new ko.nativeTemplateEngine();
engine._makeTemplateSource = engine.makeTemplateSource;
engine.makeTemplateSource = function (template, doc) {
if (typeof (template) === 'string' && templates[template]) {
return { text: function() { return templates[template]; } };
}
return engine._makeTemplateSource(template, doc);
};
ko.setTemplateEngine(engine);
Benim uygulanması adımları inşa gerçekleştirmek için gruntjs kullanır.(Hırıltı-contrib-htmlmin, hırıltı-contrib-concat) htmlmin için
seçenekleri: Herkes bunun için merak ettiğimi herkes için concat
{
stripBanners: true,
banner: "(function(t){",
footer: "})(window.templates || (window.templates={}));",
process: function (src, file) {
return 't[\'' + file.replace(/^.*\//, '').replace('.ko.html', '') + '\']=' + JSON.stringify(src) + ';';
}
}
için
{
removeComments: true,
collapseWhitespace: true,
ignoreCustomComments: [/^\s*ko /, /^\s*\/ko /]
}
seçenekleri: Şablon kaynak dosyaları, herhangi bir html editöründe düzenlenebilen standart bağımsız html dosyaları ve bu şekilde kontrol edilen kaynaklardır. Html'yi <script>
etiketlerinin içinde düzenlemek eğlencelidir. Bonus olarak, kaynak dosyalar çıkarılacak yorumlar içerebilir. Şablonlar, komut dosyası etiketini ekleyerek herhangi bir sayfada yeniden kullanılabilirler: her sayfaya dizilmesine gerek yoktur. Sonuçta oluşan paket, tarayıcıların kolayca önbelleğe alınabildiği, dinamik olarak oluşturulmuş bir sayfaya gömülen şablonların yapamayacağı statik bir dosyadır. Javascript dosyalarını paketlemek için hemen hemen aynı nedenler.
hey bir örnek ile çevrimiçi bir deponuz var mı? Github üzerinde? – hehe