If you use the babel plugin, for example, add-module-exports , you need to remove it, since webpack with the native ES6 Modules will not work with it.
If you are interested in why this happens, read on.
Findings:
For an exported component such as
class TradeComponent extends React.Component {
}
export default TradeComponent;
import TradeComponent from 'components/Trade';
"./components/Trade/index.js":
function(module, exports, __webpack_require__) {
var _default = TradeComponent;
exports["a"] = _default;
module.exports = exports['default'];
;
var temp2 =
__webpack_require__,
function __webpack_require__(moduleId) {
if(installedModules[moduleId])
return installedModules[moduleId].exports;
var module = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {},
hot: hotCreateModule(moduleId),
parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
children: []
};
modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
module.l = true;
return module.exports;
}
,
/***/ "./components/Trade/QuickTrade/BuyForm.js":
/* exports provided: default */
/* exports used: default */
/*!************************************************!*\
!*** ./components/Trade/QuickTrade/BuyForm.js ***!
\************************************************/
/***/ function(module, exports, __webpack_require__) {
"use strict";
// ... More imports
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_components_Suggest__ = __webpack_require__(/*! components/Suggest */ "./components/Suggest/Suggest.js");
// __WEBPACK_IMPORTED_MODULE_9_components_Suggest__ = Object {}
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_components_Trade__ = __webpack_require__(/*! components/Trade */ "./components/Trade/index.js");
// __WEBPACK_IMPORTED_MODULE_10_components_Trade__ = undefined
// ... The rest of the component
}(__WEBPACK_IMPORTED_MODULE_10_components_Trade__["a" /* default */]);
// ^ This is where it breaks because components_Trade__ is undefined
, ,
export class TradeComponent extends React.Component {
}
export default TradeComponent;
/***/ "./components/Trade/index.js":
/* exports provided: default */
/* exports used: default */
/*!***********************************!*\
!*** ./components/Trade/index.js ***!
\***********************************/
/***/ function(module, exports, __webpack_require__) {
// ... Imports and component
var _default = TradeComponent; // _default = TradeComponent()
/* harmony default export */ exports["a"] = _default; // exports = Object {}
// Notice the missing module.exports = exports["default"]; // undefined
;
var temp2 = // ... React hot loader things and end of component
__webpack_require__,
function __webpack_require__(moduleId) {
if(installedModules[moduleId])
return installedModules[moduleId].exports;
var module = installedModules[moduleId] = {
i: moduleId,
l: false,
exports: {},
hot: hotCreateModule(moduleId),
parents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),
children: []
};
modules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));
module.l = true;
return module.exports;
}