После запуска Require.js Optmizer плагин JQuery не может быть использован - PullRequest
3 голосов
/ 09 января 2012

Это мой main.js. Как видите, это очень просто. Мне просто нужен плагин jquery.

//main.js
require.config({
    paths: {
        jquery: 'lib/jquery/jquery-1.7.1.min',
        underscore: 'lib/underscore/underscore-min',
        backbone: 'lib/backbone/backbone-optamd3-min',
        text: 'lib/requirejs/text',
        bootstrap_dropdown: 'lib/bootstrap/bootstrap-dropdown',
     }
});

require([
    'app',
    'bootstrap_dropdown', //LOAD THE JQUERY PLUGIN!!
], function(App){
    App.initialize();
});

Это мой app.js

//app.js
define([
    'jquery',
    'underscore',
    'backbone',
    'router',
], function($, _ , Backbone, Router){
    var initialize = function(){
        $(function(){
            $("#menu_topbar").dropdown();
        });
        Router.initialize();
    }
    return {
        initialize: initialize
    };
});

Когда я запускаю сайт нормально (без оптимизации), все работает, и можно использовать выпадающий плагин. Но когда я оптимизирую, он говорит, что он имеет no method dropdown();

По какой-то причине этот плагин не загружен, что странно. Я смотрю в свой объединенный файл JS, и я вижу там плагин!

Это мой build.js:

({
    paths: {
        jquery: 'lib/jquery/jquery-1.7.1.min',
        underscore: 'lib/underscore/underscore-min',
        backbone: 'lib/backbone/backbone-optamd3-min',
        text: 'lib/requirejs/text',
        bootstrap_dropdown: 'lib/bootstrap/bootstrap-dropdown',
    },
    baseUrl:'.',
    appDir:'./',
    dir: '../prod_js',
    optimize: 'none',
    optimizeAllPluginResources:false,
    findNestedDependencies:true,
    inlineText: true,
    modules: [
{
    name: 'main',
}
    ]
})

Это не только этот плагин. Я могу выбрать любой другой плагин, и он не будет работать.

Я также попробовал require-jquery.js, который сейчас использую. Все та же проблема.

Когда я помещаю "alert ('test')" в bootstrap-dropdown.js, он выводит предупреждение.

1 Ответ

1 голос
/ 09 января 2012

Решено.

Добавлено "exclude: ['jquery']" в модуль моего app.build.js.

...