2013-03-30 2 views
2

Я пишу jquery плагин. Поскольку плагин содержит много кода, я решил разделить код на несколько файлов и использовать require.js. Я пытаюсь добиться двух вещей:использовать r.js для оптимизации файлов require.js

  1. Возможность запуска моей тестовой страницы с использованием require.js с разделенной версией плагина и тем самым сможет отлаживать код.
  2. Возможность использования оптимизатора require.js (называемого r.js) и создания одного оптимизированного (объединенного и мини-файла) из этих нескольких файлов плагина.

Мой index.html содержит:

<script data-main="js/site" src="js/vendor/require.js"></script> 

My Js/site.js содержит:

require([ 
    'jquery', 
    .... 
    .... 
    'main' //<---- main plugin file 
], function($) { 

    $(function() { 
     $('#elem').photosGrid(); 
    }); 
}); 

И мой файл main.js содержит:

define([ 
    'photos-grid' //<---- Class that initialized and build the plugin 
], function(PhotosGrid) { 
    jQuery.fn.photosGrid = function(options) { 
     var photosGrid = new PhotosGrid(this, options); 
     this.data('photosGrid', photosGrid); 
     return this; 
    }; 

    return jQuery; 
}); 

В для настройки r.js, я добавил файл build.js:

({ 
    baseUrl: '.', 
    name: "main", 
    out: "main-built.js" 
}) 

Когда я запускаю свой index.html, мой плагин отлично работает. Но когда я бегу node r.js я получаю следующее сообщение об ошибке:

Error: Mismatched anonymous define() module 

Когда я определяю main.js с именем:

define('module-name', ['photos-grid'], function(PhotosGrid) { ..... 

node r.js не возвращает ошибку, но нет выхода выйти. Кроме того, index.html не загружает зависимости main.js ('photos-grid'), и в результате сайт не работает.

Что я делаю неправильно? Как правильно использовать r.js?

+0

Вы уверены, что вы прошли '-o' флаг? (согласно http://requirejs.org/docs/optimization.html#basics) Вы не упомянули об этом, так кто знает? – kryger

+0

@kryger: Ты прав, чувак! Благодаря! Создайте ответ для этого, пожалуйста. – Naor

ответ

Смежные вопросы