Estoy usando requireJS 2.x. Descubrí que algunos tutoriales (y los documentos oficiales) a veces usan
requirejs.config({ [...] });
requirejs(["module"]) ...
y aveces
require.config({ [...] });
require(["module"]) ...
¿Hay alguna diferencia entre esas dos funciones (require y requirejs)? No pude encontrar ninguna palabra sobre eso en los documentos. :(
javascript
requirejs
require
Matthias Bayer
fuente
fuente
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
.¿Son
requirejs
yrequire
lo mismo?A partir de RequireJS 2.1.15,
require
yrequirejs
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) {
Larequire
pasada a la función normalmente es diferente de la globalrequire
.¿Deberías usar
require
orequirejs
?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, porquerequirejs
es específico de RequireJS. Otro cargador de AMD no lo definirá. La especificación AMD definerequire
pero norequirejs
.Si está cargando algo más que define un global
require
, debe utilizarlorequirejs
a nivel global para evitar conflictos.Dentro de un módulo, utilice siempre
define
para obtener una referencia arequire
. Debe hacer esto independientemente de si hay un conflicto en el espacio global.fuente
Bien, de hecho pueden ser "exactamente iguales". Entonces, centrémonos en por qué usarías uno frente al otro ...
Lo que no está claro es lo que debería considerarse "mejor práctica": si requirejs proporciona una garantía adicional "si algunos entornos ya pueden tener un requisito", entonces ¿no sería una buena idea usar siempre la función requirejs para definir una configuración de requisito? que la función requerida?
Además, ¿qué sucede si sucede lo impensable y el entorno en cuestión no solo ya tiene un "require" definido, sino que también tiene un "requirejs" definido? ¿Eso significa que también deberíamos tener un requirejsjs? Y así...?
fuente
$
yjQuery
son. Es solo para proporcionar un respaldo y ser un buen ciudadano en caso de que un entorno ya lo userequire
. Es un caso muy avanzado y se recomienda su usorequire
, pero no es necesario: github.com/amdjs/amdjs-api/blob/master/AMD.md#global-variables-Son el mismo sitio web abierto que ya se cargó
luego abre la consola Chrome
escriba require en la consola y presione enter
escriba requirejs en la consola y presione enter
puedes encontrar que son la misma función con diferentes nombres
fuente