2015-04-28 39 views
1

我希望所有的供應商代碼都被封裝在AMD模塊中。 我已經定義在我config.coffee本節:早午餐:如何在AMD模塊中包裝供應商代碼?

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

但好像早午餐採用AMD優化只爲「應用程序」文件夾中的文件。所有供應商的js文件在沒有任何類似r.js的預處理(沒有在「define(...)」語句中添加模塊名稱)進行concatinated。因此,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

謝謝,它現在適用於供應商文件。但我面臨另一個問題。我想在我的項目中使用handlebars模板。所以我說這行我的配置: \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)腳本被放到了句柄中 - brunch插件沒有與'amd'選項兼容,並且PR需要歸檔到該項目才能解決。也許'ns.amd.js'將是必要的。 – es128