将旧 JavaScript 代码转换为 ES6 模块

Convert old JavaScript code into ES6 module

我正在尝试将旧的 JavaScript 库转换为 ES6 兼容模块。 库是 tracking.js (https://github.com/eduardolundgren/tracking.js/blob/master/build/tracking.js) 但我所有的结果都以:Cannot read property 'xxx' of undefined

结尾

有什么简单的方法可以使用这样的模块吗?我正在尝试创建像 https://trackingjs.com/docs.html#step-2

这样的基本示例

更新

因为有更多代码的请求。让我展示一个非工作示例(Vue.js 组件的一部分):

import tracking from 'tracking';

export default {
  created() {
    const colors = new tracking.ColorTracker(['magenta', 'cyan', 'yellow']);
  }
};

错误是TypeError: _tracking2.default.ColorTracker is not a constructor

您应该使用 exports-loader,无需修改库,加载程序将在全局范围内查找变量,例如:

import * as tracking from 'exports-loader?tracking!tracking';

exports-loader 需要知道如何在全局范围内访问模块(tracking.js 将其自身分配给 window.tracking)。在这里,您告诉它使用带有参数 tracking(在查询问号之后)的 exports-loader 来加载模块 tracking(在解释标记之后)。