Подтвердить что ты не робот

Что такое `_dereq _()` inside React?

Я просматриваю react-0.13.3.js, и одна вещь я не могу решить. В самом начале источника существует цепочка из dereq().

'use strict';

var EventPluginUtils = _dereq_(19);
var ReactChildren = _dereq_(32);
var ReactComponent = _dereq_(34);
var ReactClass = _dereq_(33);

Но нигде не вижу реализации для этой функции. Что он делает и как это работает? И самое главное, где это объявлено?

Update

Я все еще жду ответа на более полный ответ. Мой главный вопрос - что делает функция _dereq_ и как она работает.

4b9b3361

Ответ 1

Скорее всего, derequire в сочетании с browserify (или других связующих?) модулей. Это способ переименовать require в ваш выходной пакет, чтобы избежать столкновений.

Читайте здесь для получения дополнительной информации: https://github.com/calvinmetcalf/derequire/issues/25

Основная идея заключается в том, что разные загрузчики модулей обрабатывают require по-разному. "Derequire" - это стратегия привязки вашего требования к вашему контексту с помощью другого ключевого слова.

Ответ 3

Вам нужно развернуть line 4 в источнике; это require.

1: [function(_dereq_, module, exports) {

Ответ 4

Я наткнулся на этот вопрос, после некоторых исследований я считаю, что основная цель этой функции - создать аналогичную функцию npm в вашем браузере и управлять зависимостью модуля от импорта различных функций.

если вы перейдете прямо к концу IIFE (около 20k ~ линий)

вы увидите структуру, похожую на приведенную ниже

(function e(t, n, r) {
    function s(o, u) {
       ...
    }

       ...
}) ({...  //blah blah blah, all the funcitons 
     }, {}, [1])


the variable t is all the functions modules
the variable n is an empty array
 the variable r is 1 here

поэтому требуемый модуль вызывается в правильном порядке и построен из индекса 1, оттуда он довольно понятен, все зависимости должны быть правильно запрограммированы из массива с самого начала

1: [function (_dereq_, module, exports) {....
}, {"106": 106, "23": 23, "35": 35, "45": 45, "63": 63}],