【问题标题】:Why brunch compile everything it found when using function in joinTo为什么 brunch 编译在 joinTo 中使用函数时找到的所有内容
【发布时间】:2015-10-04 23:44:08
【问题描述】:

我不明白为什么当我使用这样的函数(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。我已成功在工作台/供应商中获取文件,但它从 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 中使用函数的文档。

谢谢

【问题讨论】:

    标签: configuration brunch


    【解决方案1】:

    joinTo 中的函数应该将文件路径作为参数,如果应该包含路径,则返回 true,否则返回 false。这在 anymatch 文档中有所描述。

    您的函数似乎总是返回一个真实值,这意味着 Brunch 正在观察的每条路径都将被包括在内。

    您可能打算使用 IIFE,因此函数的返回值(在初始代码评估期间调用)被分配给 joinTo。在coffeescript 中,您可以使用do 关键字轻松完成此操作,因此不要使用() -> 开始您的函数定义,而是使用do ->

    【讨论】:

      【解决方案2】:

      感谢您的宝贵时间和回答。

      我创建了获取文件并测试路径是否存在并且工作正常的函数。

      如果这对某人有帮助,我让我的魔法在这里发挥作用

      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
          ]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-14
        • 1970-01-01
        • 2017-05-23
        • 2020-07-01
        • 2017-08-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多