Конфигурация прокладки Paper.js Require.js

Я пытаюсь инициализировать приложение, но, похоже, у меня возникают проблемы с правильной загрузкой paper js в мой скрипт. Я использую require.js в качестве загрузчика AMD и пытаюсь загрузить paper js с помощью модуля shim.

Вот мой код:

requirejs.config({
    urlArgs: "bust=" + (new Date()).getTime(),//used to keep the browser from caching the scripts as we move
    baseUrl : "scripts",//base scripts page!
    paths : {   
        'jquery' : "../components/jquery/jquery.min", //specific libraries -- can be specified later
        'underscore' : "../components/underscore/underscore",
        'paper' : "../components/paper/paper"
    },
    shim: {
        'underscore': {
            exports: '_'
        },
        'paper' : {
            exports: 'Paper'
        },
    },
});

// initialize the document with a doc ready!

requirejs(["jquery", "underscore", "paper"], function ($, _, Paper) {
    alert(_);
    alert(Paper);
});

Первое предупреждение работает нормально (подчеркивание), что означает, что оно загружается нормально, но я не могу понять, как заставить paper.js работать правильно.

Любая помощь будет принята с благодарностью.


person JonMorehouse    schedule 24.12.2012    source источник
comment
Первый шаг: проверьте консоль javascript, чтобы убедиться, что компоненты/бумага/бумага загружаются.   -  person James S    schedule 26.12.2012
comment
После просмотра библиотеки, разве это не должно быть «PaperScript» вместо «Paper»?   -  person asgoth    schedule 26.12.2012
comment
эй, похоже, все загружалось, но мне нужно было обернуть его в модуль определения   -  person JonMorehouse    schedule 27.12.2012
comment
что-то вроде этого: определить (функция () {возврат бумаги; }); На самом деле я написал в Твиттере создателю библиотеки, и он сказал, что она экспортирует бумажную переменную, так что это все, что мне нужно ввести в область действия моего модуля.   -  person JonMorehouse    schedule 27.12.2012
comment
Вам не нужно делать определение, это цель SHIM. Shim проверяет глобальные переменные для автоматического применения к вашим модулям.   -  person adrian    schedule 27.12.2012
comment
На самом деле я проверил еще раз, и использование бумаги в качестве переменной экспорта, похоже, работало с более новой копией библиотеки. Я думаю, что, возможно, я использовал плохую загрузку (поскольку я копался в lib-source)   -  person JonMorehouse    schedule 27.12.2012


Ответы (1)


Глобальное пространство имен PaperJS — «бумага».

Просто замените «Бумага» на «бумага», и все должно работать.

'paper' : {
    exports: 'paper'
}
person Hugeen    schedule 04.01.2013
comment
сработало отлично, я сделал это около недели назад! Две библиотеки прекрасно работают вместе. - person JonMorehouse; 05.01.2013