Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
requireJS优化:未定义不是函数_Requirejs - Fatal编程技术网

requireJS优化:未定义不是函数

requireJS优化:未定义不是函数,requirejs,Requirejs,不使用优化,应用程序运行良好。但通过优化(缩小JS),缩小的文件在加载主页时抛出“未定义不是函数” 问题是:在主配置文件中,我使用了下面这样的命令,这会在--new controller()-undefined行中产生加载问题 domReady(function() { if (domReady) { calendar.controller = new controller(); if (Backbone) { Backbone.

不使用优化,应用程序运行良好。但通过优化(缩小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'
有关此配置选项的更多信息,请参见:

您应该使用mainConfigFile生成选项来指定文件 在哪里可以找到垫片配置。否则优化器将不知道 垫片配置的。另一个选项是复制垫片配置 在构建概要文件中


由于您的构建配置文件中已经有配置文件,请尝试另一种方法。

谢谢,我如前所述进行了尝试,但出现了一个错误:错误:无法使用mainConfigFile中的配置,因为在优化器中运行时无法正确计算它。请尝试仅使用同样有效的JSON配置,或者不要使用mainConfigFile,而是将所需的配置值复制到生成文件或提供给优化器的命令行参数中。位于Function.build.createConfig(/node_modules/requirejs/bin/r.js:14836:23)。另外,我将shim部分从main.js单独复制到构建文件中,但仍然面临相同的问题?它的定义是什么?是的,是的!我的<代码>主配置文件:'../app.js'