Modernizr özelliği, gerektiren JES ile dinamik olarak algılamaya çalışıyorum.
Modernizr, AMD desteğine sahip olduğu için bu bir sorun olmamalı.Modernizr için JS yapılandırması gerekiyor
Benim requireJS yapılandırma Modernizr kaynak dizinine yolları içerir ve özelliği dizin algılar:
requirejs.config({
paths: {
"modernizr" : "components/modernizr/src",
"feature-detects": "components/modernizr/feature-detects"
}
});
svg testini gerektirecektir benim görünümlerinden birini varsayalım. define(['Modernizr'], ..
: tümünde algılar ve Modernizr kaynak dosyaları herhangi bir dizin belirtmeden Modernizr yüklenmesidir this
define(["feature-detects/svg"], function() { .. });
Maalesef svg.js
Modernizr.js
bulamıyorlar
Bence tanım görünebilir. sonuçlanan
çok çirkin require.config
requirejs.config({
paths: {
"Modernizr": "components/modernizr/src/Modernizr",
"addTest": "components/modernizr/src/addTest",
"ModernizrProto": "components/modernizr/src/ModernizrProto",
"setClasses": "components/modernizr/src/setClasses",
"hasOwnProp": "components/modernizr/src/hasOwnProp",
"tests": "components/modernizr/src/tests",
"is": "components/modernizr/src/is",
"docElement": "components/modernizr/src/docElement",
"feature-detects": "components/modernizr/feature-detects"
}
});
dosyayı bulamadı zaman components/modernizr/src/
arama yapmanın requireJS anlatmak için daha temiz bir yolu var mı?
Güncelleme temel kurulum ve demonstration çalışan içeren bir example github project yarattı. Sorunuzu doğru anlamak
Meraklı Betiğinizde tanımlamak kullanabilir? Senkronize olarak yüklenecek dosyaya gereksiniminiz vardır, böylece sınamalar sayfanın geri kalanı yüklenmeden önce çalışır. Doğru olarak hatırlarsam, AMD öncelikle oluşturma işlemine yardımcı olmak için seçildi - https://github.com/Modernizr/Modernizr/issues/713 –
@SimonSmith Uygulamamı tek bir uygulamaya oluşturmak için requireJS 'r.js' komut dosyasını kullanıyorum dosya. RequireJS kullanarak modernizr bağımlılıkları tanımlayabilirsem harika olurdu. – jantimon
Varlıkları yönetmek için Bower gibi bir şey kullandığınızı varsayarsınız, bu nedenle, 'components' klasörünüz proje klasörü ile aynı değildir (başka bir deyişle, modernleştiriciyi işaretlemek için RequireJS'deki 'baseUrl'yi kullanamazsınız). Ne yazık ki, bu bağımlılıkları eklemenin kolay bir yolu yok gibi görünüyor ve çözdüğünüz gibi tek seçenek. Alternatif, Modernizörde "r.js" yi çalıştırıyor ve ardından paketlenmiş dosyayı uygulamanıza dahil ediyordu. Hala harika değil. – danielepolencic