¿Son requirejs
y require
lo mismo?
A partir de RequireJS 2.1.15, require
y requirejs
en el espacio global son de hecho "exactamente iguales", como se puede evidenciar con esta prueba que puedes realizar en la consola:
> require === requirejs
true
Que la prueba devuelva true
le dice que son exactamente el mismo objeto de función . No son dos funciones que tengan un código similar o idéntico. Son el mismo objeto, punto.
Sin embargo, tenga en cuenta que cuando ejecuta la función define(['require'], function (require) {
La require
pasada a la función normalmente es diferente de la global require
.
¿Deberías usar require
o requirejs
?
Depende. RequireJS es un cargador AMD pero no es el único cargador de la ciudad. Si desea escribir código que se ajuste al 100% a las especificaciones de AMD , de modo que alguien que use su código pueda usar el cargador que desee sin tener que modificar su código, entonces debe usarlo require
a nivel global, porque requirejs
es específico de RequireJS. Otro cargador de AMD no lo definirá. La especificación AMD define require
pero no requirejs
.
Si está cargando algo más que define un global require
, debe utilizarlo requirejs
a nivel global para evitar conflictos.
Dentro de un módulo, utilice siempre define
para obtener una referencia a require
. Debe hacer esto independientemente de si hay un conflicto en el espacio global.