当我使用像这样的函数(CoffeeScript)时,我不明白为什么BrunchJS编译所有文件(在bower_components中):
modules = ['i18n', 'pager', 'core', 'module-comment']
javascripts:
joinTo:
# Main
'/js/master.js': () ->
paths = ['bower_components/bootstrap/**/*', 'app/**/*']
for o in modules
fs.exists '../../../../workbench/dynamix/' + o, (exists) ->
if exists
paths.push '../../../../workbench/dynamix/' + o + '/public/public/**/*'
else
paths.push '../../../../vendor/dynamix/' + o + '/public/public/**/*'
return paths
我想测试是否存在某个路径,如果是,则将完整路径放在变量中以将其返回到joinTo。我成功地在workbench / vendor中获取了文件,但它从bower_components中获取了一些不需要的文件(未指定?!)
我想优化一下:
javascripts:
joinTo:
# Main
'/js/master.js':
'bower_components/bootstrap/**/*'
'../../../../workbench/dynamix/i18n/public/public/**/*'
'../../../../workbench/dynamix/pager/public/public/**/*'
'../../../../vendor/dynamix/core/public/public/**/*'
'../../../../workbench/dynamix/module-comment/public/public/**/*'
'../../../../workbench/dynamix/module-love-live-music/public/public/**/*'
'../../../../workbench/dynamix/module-rating/public/public/**/*'
'../../../../workbench/dynamix/module-registration/public/public/**/*'
'app/**/*'
对不起,我没有找到在joinTo中使用函数的文档。
由于
答案 0 :(得分:0)
joinTo
中的函数应该将文件路径作为参数,如果应包含路径则返回true
,否则返回false
。这在anymatch文档中有描述。
您的功能似乎总是返回真值,这意味着Brunch正在观看的每条路径都会包含在内。
您可能打算使用IIFE,因此函数的返回值(在初始代码评估期间调用)将分配给joinTo
。在coffeescript中,您可以使用do
关键字轻松完成此操作,因此,不要使用() ->
启动您的功能定义,而应使用do ->
代替wait
。
答案 1 :(得分:0)
感谢您的时间和答案。
我创建了获取文件的函数,并测试路径是否存在且运行正常。
如果这对某人有帮助,我就让我的魔法功能在这里
javascripts:
joinTo:
# Main
'/js/master.js': [
'bower_components/bootstrap/**/*'
'bower_components/unveil/**/*'
'app/**/*'
(string) ->
response = false
modules = ['i18n', 'pager', 'core', 'module-comment']
for o in modules
exists = fs.existsSync unixify('../../../../workbench/dynamix/' + o)
if exists
if unixify(string).indexOf(unixify('../../../../workbench/dynamix/' + o + '/public/public/')) != -1
response = true
else
if unixify(string).indexOf(unixify('../../../../vendor/dynamix/' + o + '/public/public/')) != -1
response = true
return response
]