2012-05-31 23 views
9

RequireJs 2.0 kullanıyorum (veya kullanmaya teşebbüs ediyorum).Birden çok veri ana makinesini kullanarak RequireJS

Halihazırda, varlıklarım "Genel" ve "Özel" bölümlerine ayrılmıştır. Tüm sayfalar Genel komut dosyalarını kullanmalı, sadece bazı sayfalar Özel'i kullanmalıdır.

RequireJs'e söyleyebileceğim şeyden, yapılandırmanızı ve temel olarak modül gereksinimlerinizi içeren bir data-main değerini kabul eder. Tüm sayfalar aynı varlıkları kullanıyorsa bu iyidir, ancak Özel sayfalar için ek bir data-main komut dosyası ekleyebilir miyim?

Teşekkür ederiz!

cevap

3

Genel betiğinizi yüklemek için data-main özniteliğinizi kullanın. Özel sayfalarda, Özel modül gerektiren bir şeyi yapmak üzere olduğunuz her yere, onu bir require numaralı telefona sarın. Kişisel ana sayfa (veya şablon veya düzen ya da her ne sunucu platformu üzerinde deniyor) bu olurdu:

<html><head> 
<script language="javascript" src="require.js" data-main="general" ></script> 
</head> 

Sizin özel sayfa biçimlendirme şöyle olabilir (bellekten sözdizimi; bir kez daha kontrol!)

<p class="funny">I'm a funny paragraph</p> 
<script language="javascript"> 
require(['funny-stuff'], function(fs) { 
    fs.doSomthing(); 
}); 
</script> 

funny-stuff modülü, yalnızca bunu isteyen sayfalar tarafından yüklenir. Bazı sayfalarda ayrı bir işaretleme yapmak istemez veya edemezseniz, bir if ifadesinin içine bir require çağrıyı sarmalayarak ana komut dosyanızdan bir bağımlılığı dinamik olarak yükleyebilirsiniz. general.js içinde:

// Determine if we need the custom module 
if (isFunnyPage()) { 
    require(['funny-stuff'], function(fs) { 
    fs.doSomething(); 
    }); 
} 

Sen optimize edici çalıştırdığınızda o require çağrısında başvurulan bağımlılık bulacaksınız çünkü dikkatli olmak zorunda, ve ana dosya ile varsayılan paketiyle bunu tarafından yoktur. Bu nedenle, özel modülleri hariç tutmak için eniyileyiciyi yapılandırmanız gerekir.

İlgili konular