Є requirejsі requireтому ж рівні ?
Станом на RequireJS 2.1.15, requireа requirejsв глобальному просторі дійсно "абсолютно однакові", про що може свідчити цей тест, який ви можете виконати в консолі:
> require === requirejs
true
Те, що повертає тест, trueговорить вам, що вони є абсолютно однаковим об’єктом функції . Це не дві функції, які мають подібний або однаковий код. Вони один і той же предмет, крапка.
Зверніть увагу, однак при виконанні передається функції , як правило , відрізняється від глобального .define(['require'], function (require) {requirerequire
Ви повинні використовувати requireабо requirejs?
Це залежить. RequireJS - це навантажувач AMD, але це не єдиний навантажувач у місті. Якщо ви хочете написати код, який на 100% відповідає специфікації AMD , щоб хтось, хто використовує ваш код, міг використовувати будь-який завантажувач, який їм заманеться, не потребуючи модифікації вашого коду, тоді вам слід використовувати requireна глобальному рівні, оскільки requirejsце специфічно для RequireJS. Інший завантажувач AMD не визначить його. Специфікація AMD визначає, requireале ні requirejs.
Якщо ви завантажуєте щось інше, що визначає глобальний, requireтоді вам доведеться використовувати requirejsна глобальному рівні, щоб уникнути конфлікту.
Всередині модуля завжди використовуйте defineдля отримання посилання на require. Ви повинні робити це абсолютно незалежно від того, чи існує конфлікт у глобальному просторі.