2015-04-28 1 views
1

Я хочу, чтобы весь код поставщика был упакован в модули AMD. я определил этот раздел в моем config.coffee:Бранч: как обернуть код поставщика в модулях AMD?

modules: 
    wrapper: 'amd' 
    definition: 'amd' 

Но похоже бранч использует AMD оптимизатор только для файлов папки «приложение». Все файлы js vendor, которые объединены без какой-либо предварительной обработки r.js (в именах «define (...)» не добавлены имена модулей). В результате, Almond (почти такой же, как RequireJS) жалуется на анонимное определение модуля во время выполнения файла поставщика.

Вот мой полный конфиг:

exports.config = 

    paths: 
    public: 'public' 

    files: 
    javascripts: 
     defaultExtension: 'js' 

     joinTo: 
     'js/app.js': /^app/ 
     'js/vendor.js': /^vendor[\\/](?!mocha|chai|sinon|sinon-chai)/ 
     'js/tests.js': /^test/ 
     'js/tests-vendor.js': /^vendor[\\/](?=mocha|chai|sinon|sinon-chai)/ 

     order: 
     before: [ 
      'bower_components/almond/almond.js', 
      'bower_components/jquery/jquery.js', 
      'bower_components/lodash/dist/lodash.underscore.js' 
     ] 

    stylesheets: 
     defaltExtension: 'less' 

     joinTo: 
     'css/styles.css': /^(vendor[\\/](?!mocha|chai|sinon|sinon-chai)|app)/ 
     'css/tests-vendor.css': /^(vendor[\\/](?=mocha|chai|sinon|sinon-chai))/ 

    templates: 
     defaultExtension: 'hbs' 
     joinTo: 'js/app.js' 

    modules: 
    wrapper: 'amd' 
    definition: 'amd' 

ответ

0

Вы можете изменить conventions.vendor в вашей конфигурации к чему-то, что не будет соответствовать вашим файлам поставщика, с тем чтобы модуль упаковки.

https://github.com/brunch/brunch/blob/master/docs/config.md#conventions

+0

Спасибо, это работает для файлов поставщика в настоящее время. Но я столкнулся с другой проблемой. Я хотел бы использовать шаблоны рулей в моем проекте. Поэтому я добавил эти строки в моей конфигурации: \t <Плагины: \t \t Рули: \t \t включают в себя: \t \t \t среды выполнения: ложные \t \t \t Amd: истина> Но есть некоторый код (т.е. handlebars- brunch/ns.js), которые ожидают Handlebars в глобальной области. Итак, есть ли способ экспортировать Handlebars в глобальном масштабе наряду с возможностью использовать его как модуль AMD? – Evgeny

+0

Я собираюсь создать отдельный вопрос для этого. – Evgeny

+0

Ваш новый вопрос был более общим, так вот как он получил ответ. Но в конкретном случае, который вы описываете, проблема может заключаться в том, что скрипт [ns.js] (https://github.com/brunch/handlebars-brunch/blob/master/ns.js), испеченный в руле, бранч-плагин не был совместим с опцией «amd», и PR должен быть подан в этот проект, чтобы разрешить его. Возможно, понадобится 'ns.amd.js'. – es128

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