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'
謝謝,它現在適用於供應商文件。但我面臨另一個問題。我想在我的項目中使用handlebars模板。所以我說這行我的配置: \t <插件: \t \t車把: \t \t包括: \t \t \t運行:假 \t \t \t AMD:真> 但是有一些代碼(即handlebars- brunch/ns.js)期望在全球範圍內使用Handlebars。那麼,是否有辦法在全球範圍內出口Handlebars以及將其作爲AMD模塊使用的可能性? – Evgeny
我要爲此創建單獨的問題。 – Evgeny
你的新問題更一般,所以這就是它的答案。但是在你描述的特定情況下,問題可能是[ns.js](https://github.com/brunch/handlebars-brunch/blob/master/ns.js)腳本被放到了句柄中 - brunch插件沒有與'amd'選項兼容,並且PR需要歸檔到該項目才能解決。也許'ns.amd.js'將是必要的。 – es128