2012-06-17 31 views
9

更新: 任何有興趣使用BrunchAngularJS我已經把一個種子項目angular-brunch-seed早午餐如何禁用RequireJS模塊包裝

我使用BrunchAngularJSAngularJS提供了一個模塊系統,因此使用commonJS/AMD導入文件的需求是多餘的。是否可以爲/app目錄中的文件禁用此功能?本質上,我希望它能像編譯/vendor目錄時一樣編譯文件。

所以優選出來將是:

joinTo: 
    'js/app.js': /^app/ 
    'js/vendor.js': /^vendor/ 

與這兩個js/app.js和含有從每個相應的文件夾中的文件編譯js/vender.js,但既不纏繞。

有沒有人有任何想法?

UPDATE 的語法已經從當@jcruz答案改變。現在就有辦法做到這一點。

最後我去了@jcruz的修改版本的答案。

exports.config = 
    modules: 
    definition: false 
    wrapper: (path, data) -> 
     """ 
(function() { 
    'use strict'; 
    #{data} 
}).call(this);\n\n 
     """ 
    files: 
    javascripts: 
     defaultExtension: 'coffee' 
     joinTo: 
     'js/app.js': /^app/ 
     'js/vendor.js': /^vendor/ 

默認情況下,「原始」包裝不包括coffeescript的標準包裝。通過將jsWrapper設置爲:

wrapper: (path, data) -> 
    """ 
(function() { 
    'use strict'; 
    #{data} 
}).call(this); 
    """ 

文件將按預期方式打包。

+0

嘿感謝與新語法更新這個問題。我剛更新了早午餐,舊的'jsWrapper'語法不起作用。 – jcruz

回答

4

禁用模塊包裝的能力剛剛在https://github.com/brunch/brunch/commit/ec158cffd1b66d5db2093cf766000673aa0dd3a5

加入我不相信釋放瓦特/這些功能是在NPM尚未但是你可以只從GitHub庫重新安裝早午餐

一旦你這樣做早午餐,在config.coffee jsWrapper設置爲「原始」

事情是這樣的......

exports.config = 
    jsWrapper: 'raw' 
    files: 
    javascripts: 
     defaultExtension: 'js' 
     joinTo: 
     'javascripts/app.js': /^app/ 
     'javascripts/vendor.js': /^vendor/ 

「早午餐b」和包裝代碼應該消失

+0

我最終傳遞了一個函數來將這些文件包裝在標準coffeescript包裝中,但其他的則完美。謝謝! –

2

至於(幾乎)2017年一月,它是必須將npm與模塊設置一起聲明爲false。不過,我花了一段時間才發現。 (通過GitHub issue找到)。希望這可以幫助。乾杯。

這裏是一個工作的配置文件:

// See http://brunch.io for documentation. 
module.exports = { 
    files: { 
     javascripts: { 
     joinTo: { 
      '/js/app.js': /^app/, 
      '/js/vendor.js': /^(?!app)/ 
     } 
     }, 
     stylesheets: { 
     joinTo: 'css/app.css' 
     } 
    }, 

    paths: { 
     public: '/priv/static' 
    }, 

    npm: { 
     enabled: false 
    }, 

    modules: { 
     wrapper: false, 
     definition: false 
    } 
}