Я не эксперт ни в babel, ни в webpack, это далеко не так, но, глядя на выходной код из webpack, вы можете увидеть, что webpack вводит вариант global
в ваш код, если вы его используете, поэтому если мыиметь простой код вроде:
console.log("just a test");
Это то, что заканчивается в нашем исходном коде:
eval("__webpack_require__.r(__webpack_exports__);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] =
Но, если бы мы использовали следующий код:
console.log("just a test", global);
Это наш вывод:
eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(global) {//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n/* harmony default export */ __webpack_exports__[\"default\"] =
Вы можете ясно видеть изменение.
Обнаружено это выпуск , который может оказаться полезным для выяснения этого.
Из того, что я понял, babel использует этот для внутреннего использования, поэтому он экспортирует его, если вы используете его в коде.
Обратите внимание, что у вас нет доступа к global
вариант в консоли.
Примечание global
и window
- это один и тот же объект, это не копия, поэтому все изменения, сделанные в global
, будут выполнены в window