【问题标题】:Webpack require method returns unexpected objectWebpack 要求方法返回意外对象
【发布时间】:2016-04-07 04:08:43
【问题描述】:

我最近将我的 webpack 从版本 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

然后我在调用instrument()之前添加了console.log(DevTools),这是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吗?

【问题讨论】:

    标签: javascript webpack babeljs


    【解决方案1】:

    除了总是导入 DevTools,您还可以通过添加 default 有条件地要求它们

    const DevTools = require('../components/DevTools.js').default;
    

    【讨论】:

      猜你喜欢
      • 2019-07-23
      • 2017-02-24
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多