Webpack require方法返回意外对象

时间:2016-02-19 04:58:18

标签: javascript webpack babeljs

我最近将我的webpack从verion 1.12.9升级到了1.12.13,babel从5升到6,这是我升级后代码中断的一部分:

const DevTools = require('../components/DevTools.js')
DevTools.instrument()

我收到以下错误:

Uncaught TypeError: DevTools.instrument is not a function

然后我在致电console.log(DevTools)之前添加了instrument(),这是Chrome控制台中的输出:

> Object {__esModule: true}
  > __esModule: true
  > default: DevTools(props, context)
  > __proto__: Object

要解决此问题,我使用import代替require

import DevTools from '../components/DevTools.js'

再次打印console.log(DevTools)即可:

DevTools(props, context) {
      _classCallCheck(this, DevTools);
      var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
      if (!props.store && !…

这正是我想要导入并正常工作的原因。

有人知道为什么会这样吗?这个错误是由于webpack或babel的升级造成的吗?

1 个答案:

答案 0 :(得分:0)

除了始终导入DevTools之外,您还可以通过添加default

来有条件地要求它们
const DevTools = require('../components/DevTools.js').default;