¿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.
requirejs
yarequire
que ya es una variable local en esta situación. He encontrado esto útil en los componentes de React para cargar scripts adicionales encomponentDidMount
.