我试图将旧的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
答案 0 :(得分:0)
您应该使用exports-loader,不需要修改库,加载器将在全局范围内查找变量,例如:
import * as tracking from 'exports-loader?tracking!tracking';
exports-loader需要知道如何在全局范围内访问模块(tracking.js将自己分配给window.tracking
)。在这里,您告诉它使用带参数tracking
的exports-loader(在查询问号之后)加载模块tracking
(在解释标记之后)。