我正在使用 RequireJS 将我的所有 javascript 加载为 AMD 模块。具体来说,我使用“shim”配置来加载非 AMD 模块。
但是当我尝试加载 MixPanel 时,我得到了一个“未定义”的对象。
以下是相关文件,与我成功填充的 Stripe js 进行比较。
主.js:
require.config({
paths: {
stripe: 'libs/stripe/stripe',
mp: 'libs/mixpanel/mixpanel'
},
shim: {
'stripe': {
exports: 'Stripe'
},
'mp': {
exports: 'MP'
}
}
});
libs/stripe/stripe.js
并且libs/mixpanel/mixpanel.js
都(function () {})();
按照文档的建议进行了通话。
我的 payment.js(包装了 Stripe):
define(['jquery', 'stripe'], function ($, Stripe) {
var key = "MY_KEY";
Stripe.setPublishableKey(key);
});
我的 track.js(包装了 MixPanel):
define(['jquery', 'mp'], function ($, MP) {
var token = "MY_TOKEN";
MP.init(token);
});