我正在尝试在我的Magento 2网站上使用Shipping Time JS插件,它需要moment.js和jQuery才能工作,但是它没有工作。我在shiptime.js的第49行(如下所示)中得到一个ReferenceError:moment未定义:
try {
if (moment === undefined || $ === undefined ) throw Error("please include jquery & moment.js");
} catch (e) {
console.log(e);
}
我的 require.js
这是我的 requirejs-config.js 的内容,它位于 app/design/frontend/##/##/requirejs-config.js:
var config = { // eslint-disable-line no-unused-vars
packages: [{
name: 'momentjs',
location: 'js/',
main: 'moment'
}],
map: {
'*': {
'menu': 'Magento_Theme/js/disable-menu',
'shippingtime': 'js/shiptime'
}
},
shim: {
'momentjs': {
deps: ['jquery']
},
'shippingtime': {
deps: ['jquery',',momentjs']
}
}
};
jQuery在其他地方已经加载,并且肯定被加载了(我有各种其他工作正常的jQuery库)。
==============
调试
我最初认为moment.js/shiptime.js文件没有被加载,但是当我检查源代码和网络面板时,它们确实被加载了。为了进一步测试这一点,我做了以下操作来查看moment.js是否会输出任何内容:
require(['momentjs'], function (moment) {
console.log(moment().format('LLLL'));
});
这里将日期输出到控制台,因此 moment.js 明显已经加载。下面是 shiptime.js 文件的代码,但它无法运行并出现了上述错误:
require(['jquery', 'shippingtime', 'momentjs'], function (moment) {
jQuery(document).ready(function () {
jQuery(function($) {
jQuery('.shipping-time').shipTime();
});
});
});
非常感谢您的任何建议!
require.js
的line 18
上似乎有一个额外的,
?deps:['jquery',',momentjs']
- dusthaines