RequireJS: разница между функциями" requirejs "и" require"
Я использую requireJS 2.х. Я узнал, что некоторые учебники (и официальные документы) иногда использую
requirejs.config({ [...] });
requirejs(["module"]) ...
и иногда
require.config({ [...] });
require(["module"]) ...
есть ли разница между этими двумя функциями (require и requirejs)? Я не мог найти ни слова об этом в документах. :(
4 ответов
Они точно такие же.
причина в том, что в некоторых средах уже может быть require
, в этом случае RequireJS не перезаписывает его и позволяет использовать библиотеку через requirejs
см. эту фиксацию - https://github.com/jrburke/requirejs/commit/be45948433b053921dc6a6a57bf06d04e13b3b39
Are 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
. Вы должны сделать это совершенно независимо от того, есть конфликт в глобальном пространстве.
хорошо, они действительно могут быть "точно такими же". Давайте тогда сосредоточимся на том, почему вы используете одно против другого...
неясно, что следует считать "лучшей практикой": если requirejs предоставляет дополнительную гарантию" если в некоторых средах уже может быть require", то не было бы хорошей идеей всегда использовать функцию requirejs для определения требуемой конфигурации, а не требуемой функции?
кроме того, что произойдет, если случится немыслимое, и среда, о которой идет речь, не только уже имеет" require", но и имеет" requirejs"? Значит ли это, что у нас тоже должен быть requirejsjs? И так далее...?
Они же Откройте сайт, который загружен require уже
затем откройте консоль Chrome
введите require в консоли и нажмите enter
введите requirejs в консоли и нажмите enter
вы можете найти, что они являются одной и той же функцией с разными именами