¿Hay alguna forma de comprobar si un determinado plugin está disponible?
Imagina que estás desarrollando un plugin que depende de que otro plugin esté cargado.
Por ejemplo, quiero que el plugin jQuery Validation utilice la librería dateJS para comprobar si una fecha dada es válida. ¿Cuál sería la mejor manera de detectar, en el plugin jQuery Valdation si dateJS está disponible?
En general, los plugins de jQuery son espacios de nombres en el ámbito de jQuery. Podrías ejecutar una simple comprobación para ver si el espacio de nombres existe:
if(jQuery().pluginName) {
//run plugin dependent code
}
dateJs sin embargo no es un plugin de jQuery. Modifica/extende el objeto fecha de javascript, y no se añade como un namespace de jQuery. Puedes comprobar si el método que necesitas existe, por ejemplo:
if(Date.today) {
//Use the dateJS today() method
}
Pero podrías encontrarte con problemas en los que la API se solapa con la API nativa de Date.
Te recomiendo encarecidamente que empaquetes la librería DateJS con tu plugin y documentes el hecho de que lo has hecho. No hay nada más frustrante que tener que buscar dependencias.
Dicho esto, por motivos legales, no siempre podrás empaquetar todo. Tampoco está de más ser precavido y comprobar la existencia del plugin utilizando la respuesta de Eran Galperin's.