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