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