将旧的JavaScript代码转换为ES6模块

时间:2017-03-07 13:38:05

标签: javascript es6-module-loader

我试图将旧的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

1 个答案:

答案 0 :(得分:0)

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

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

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