Javascript 带有moment.js的RequireJs不会触发`init`
我的requirejs配置正在声明,我希望在需要库时设置默认语言环境。所以,我试过这个:Javascript 带有moment.js的RequireJs不会触发`init`,javascript,requirejs,momentjs,Javascript,Requirejs,Momentjs,我的requirejs配置正在声明,我希望在需要库时设置默认语言环境。所以,我试过这个: require.config({ enforceDefine: true, noGlobal: true, baseUrl: '/js', shim: { 'moment': { init: function (moment) { console.log("*** Moment loaded!"); return moment;
require.config({
enforceDefine: true,
noGlobal: true,
baseUrl: '/js',
shim: {
'moment': {
init: function (moment) {
console.log("*** Moment loaded!");
return moment;
}
}
},
paths: {
'moment': 'lib/moment-with-locales.min'
}
});
然而,调用require(['moment'],函数(moment){…})代码>不调用shim
配置中的init
函数
这里我没有得到什么?Moment.js将自己定义为AMD模块,并且RequireJS不会调用init
从RequireJS的文档中:
AMD模块将不调用init
函数。比如你
无法使用shim init函数调用jQuery的noConflict
。看见
使用noConflict作为jQuery的替代方法
从Moment.js的主要来源:
你知道我该怎么解决这个问题吗?意思是,一旦模块加载(仅在需要时)我如何自动调用moment.lang(…)
?不幸的是,这对我没有多大帮助。我的requirejs
config基于一个已知的本地locale
变量,该变量已保存当前的locale,用于配置和;为了解决矩.js
的问题,我需要导出那个对我来说似乎很愚蠢的变量。我希望我不需要重构:)哦,好吧,不管怎样,这都是微不足道的。。谢谢你的回答!