Con Modernizr 3.0 (alfa), que puede generar compilaciones personalizadas localmente Esto puede resolver la preocupación de "exageración" antes mencionada, aunque no estoy del todo claro con respecto a esa preocupación en primer lugar (pero supongo que es el tamaño). La nueva API proporciona un método de 'compilación', al que puede pasar json que contiene las pruebas que le gustaría incluir en la compilación.
Utilizo algo como esto en mi archivo tragamonedas, pero no se necesita un trago: un simple script de nodo funcionará.
gulp.task('js:modernizr', function() {
var modConfig = JSON.parse(fs.readFileSync('modernizr-config.json', {
encoding: 'utf8'
}));
modernizr.build(modConfig, function(res) {
fs.writeFileSync('modernizr.js', res);
return true;
});
});
Y un ejemplo del fichero 'Modernizr-config.json' habría
{
"classPrefix": "",
"options": [
"addTest",
"atRule",
"domPrefixes",
"hasEvent",
"html5shiv",
"html5printshiv",
"load",
"mq",
"prefixed",
"prefixes",
"prefixedCSS",
"setClasses",
"testAllProps",
"testProp",
"testStyles"
],
"feature-detects": [
"css/transforms",
"css/transforms3d",
"css/transformstylepreserve3d",
"css/transitions",
"touchevents",
"workers/webworkers",
"history"
]
}
El archivo de configuración completo se incluye en el paquete Modernizr.
Con este enfoque, puede aprovechar el paquete de pruebas Modernizr bien mantenido a través de instaladores de paquetes y agregar/eliminar pruebas fácilmente según sea necesario. Menos pruebas, archivo más pequeño, obviamente.
La opción '' setClasses añadirá la clase de prueba en relación con su html pero también se puede tomar ventaja de los eventos asincrónicos 3.0, así:
Modernizr.on('csstransitions', function(bool) {
if (bool === true) // do transition stuffs
}
no quiero para incluir una biblioteca para esto. – user1087110
revise este hilo: http://stackoverflow.com/a/13081497/104380 – vsync