为什么brunch编译在joinTo中使用函数时发现的所有东西

时间:2015-09-29 20:54:16

标签: configuration brunch

当我使用像这样的函数(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中使用函数的文档。

由于

2 个答案:

答案 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
    ]