要求JS优化:未定义不是函数 [英] requireJS optimization: undefined is not a function
本文介绍了要求JS优化:未定义不是函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在不使用优化的情况下,应用程序工作正常。但是通过优化(缩小JS),缩小后的文件在加载主页时会抛出"未定义的不是函数"。
问题是:在主配置文件中,我在-- new controller() - undefined
行使用了类似下面这样的代码,这会导致加载问题。
domReady(function() {
if (domReady) {
calendar.controller = new controller();
if (Backbone) {
Backbone.history.start();
}
}
});
我的build.js如下:
({
'baseUrl': './',
'dir': '../build/js',
'paths': {
'jquery': 'require-jquery',
'underscore': 'lib/lodash.min',
'backbone': 'lib/backbone-min',
'mustache': 'lib/mustache',
'bootstrap': 'lib/bootstrap.min',
'fullcalendar': 'lib/fullcalendar.min',
'controller': 'calendar/controllers/home_controller',
'jqueryui':'lib/jquery-ui.min',
'moment':'lib/moment.min',
'customscroll':'lib/jquery.mCustomScrollbar',
'mousewheel':'lib/jquery.mousewheel.min',
'validate':'lib/jquery.validate.min',
'datatable':'lib/jquery.dataTables.min',
'blockUi':'lib/jquery.blockUI',
'fileupload':'lib/fileuploader'
},
'shim': {
'underscore': {
'exports': '_'
},
'backbone': {
'deps': ['jquery','underscore'],
'exports': 'Backbone'
},
'bootstrap': {
'deps': ['jquery'],
'exports': 'jQuery.fn.alert'
},
'fullcalendar': {
'deps': ['jquery']
},
'jqueryui': {
'deps': ['jquery']
},
'customscroll': {
'deps': ['jquery']
},
'mousewheel': {
'deps': ['jquery']
},
'validate': {
'deps': ['jquery']
},
'datatable': {
'deps': ['jquery']
},
'fileupload': {
'deps': ['jquery','jqueryui']
},
'blockUi': {
'deps': ['jquery']
},
'controller': {
'deps': ['backbone','fullcalendar','jqueryui','moment','customscroll','mousewheel','validate','datatable','blockUi','fileupload']
}
},
'locale': 'en-us',
'optimize': 'uglify',
'inlineText': true,
'modules': [
{
'name': 'calendar/controllers/home_controller',
'exclude': ['jquery']
}
]
})
RequireJS版本:2.1.1。
推荐答案
优化器似乎找不到填充程序配置。您将需要使用mainConfigFile生成选项指定它。
mainConfigFile: 'path/to/main.js'
有关此配置选项的详细信息,请参阅require.js API doc - Main config file:
应使用mainConfigFile生成选项指定文件 哪里可以找到填充配置。否则优化器不会知道 填充配置的。另一个选项是复制填充配置 在生成配置文件中。
因为您的生成配置文件中已经有它,请尝试相反的方法。
这篇关于要求JS优化:未定义不是函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文