Webpack require 方法返回意外的对象

Webpack require method returns unexpected object

本文关键字:对象 意外 返回 require 方法 Webpack      更新时间:2023-09-26

我最近将我的 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 的升级引起的吗?

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

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