Использую webpack.
import { Babushka } from "che-to";
console.log(Babushka); // undefined
Babushka(); // TypeError: Object(...) is not a function
Почему так происходит, если
Babushka === undefined
? Должна же в таком случае вылетать ошибка
Babushka is not a function
? Как это работает?
Пытался вырыть ответ в requirejs api, в webpack'e, в дебаггере - не нашел.
P. S. Нашел причину
Вебпак превращает обычный код
import { ANY_UNDEFINED_VARIABLE } from "./hello";
console.log("ANY_UNDEFINED_VARIABLE", ANY_UNDEFINED_VARIABLE);
ANY_UNDEFINED_VARIABLE ();
в это
/***/ "./src/index.js":
/*!**********************!*\
!*** ./src/index.js ***!
\**********************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _hello__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hello */ "./src/hello.js");
console.log("ANY_UNDEFINED_VARIABLE", _hello__WEBPACK_IMPORTED_MODULE_0__["ANY_UNDEFINED_VARIABLE"]);
Object(_hello__WEBPACK_IMPORTED_MODULE_0__["ANY_UNDEFINED_VARIABLE"])();
/***/ })
А вот и ответ, зачем это делать
webpack