所以我正在尝试使用 RequireJS 中的 r.js 将我所有的 javascript 模块编译到一个文件中。虽然代码保留在单独的文件中,但脚本运行得很好。但是在 r.js 将它们全部放在同一个文件中之后,momentTimezones 似乎没有被加载。模块 angularMoment 使用它们,并且只加载时刻。
这是我使用 main.js 的垫片:
shim: {
angular: {
exports: 'angular'
},
uiRouter: ['angular'],
ngResource: ['angular'],
ngAnimate: ['angular'],
angularLocaleSweden: ['angular'],
angularMoment:{
deps: ['angular', 'momentTimezones', 'moment'],
exports: 'angularMoment'
},
uiModal: ['angular'],
angularConfirm: ['uiModal'],
lodash: {
exports: '_'
},
jquery: {
exports: '$'
},
angularToastr: ['jquery', 'angular'],
'jquery.signalr': ['jquery'],
'signalr.hubs': ['jquery.signalr'],
'ng-file-upload': ['angular'],
'ng-file-upload-shim': ['angular'],
'ng-img-crop': ['angular']
}
这是我的 r.js 构建配置:
({
baseUrl: './Client',
mainConfigFile: './Client/main.js',
name: 'main',
out: './Client/main.min.js',
//wrapShim: true,
optimize: 'none',
//findNestedDepencies: true
})
当我尝试运行我编译的 main.js 时,我得到:
TypeError: moment.utc(...).tz is not a function
和
angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js?
其他一切都有效。我查看了编译后的 main.js 和 moment-timezones 的内容,在 moment.js 的内容之后和 angularMoment.js 的内容之前