¿Son requirejsy requirelo mismo?
A partir de RequireJS 2.1.15, requirey requirejsen 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 truele 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 requirepasada a la función normalmente es diferente de la global require.
¿Deberías usar requireo 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 requirea nivel global, porque requirejses específico de RequireJS. Otro cargador de AMD no lo definirá. La especificación AMD define requirepero no requirejs.
Si está cargando algo más que define un global require, debe utilizarlo requirejsa nivel global para evitar conflictos.
Dentro de un módulo, utilice siempre definepara obtener una referencia a require. Debe hacer esto independientemente de si hay un conflicto en el espacio global.