早午餐配置:javascript文件排除* .min.js文件

时间:2013-03-27 12:39:35

标签: javascript node.js brunch

我理解早午餐如何处理javascript文件,将它们组合成单独的输出文件:

  files:
    javascripts:
      joinTo:
        'javascripts/app.js': /^app/
        'javascripts/vendor.js': /^vendor/
        'test/javascripts/test.js': /^test(\/|\\)(?!vendor)/
        'test/javascripts/test-vendor.js': /^test(\/|\\)(?=vendor)/
例如,第二行获取/ vendor /文件夹中的所有javascript文件并生成vendor.js

正则表达式(/ ^ vendor /)指定文件夹路径是否正确?有任何方法让正则表达式也适用于文件名吗?例如,如果有jquery.js和jquery.min.js,我只想包含jquery.js文件。这可能吗?

3 个答案:

答案 0 :(得分:5)

您可以使用函数来测试路径。他们应该很简单:

joinTo:
  'javascripts/vendor.js': (path) ->
    /^vendor/.test(path) and not /\.min\.js$/.test(path)

答案 1 :(得分:2)

您可以指定要忽略的路径。正则表达式应匹配文件的完整路径,包括文件名。

paths:
  public: '../deploy'
  ignored: 'vendor/styles/bootstrap'
  test: 'spec'
  

忽略键:字符串,regExp,函数或它们的数组。会检查   针对早午餐编译器会忽略的文件。

但正如Amberlamps建议你可以给正则表达式排除文件中的* .min.js文件。

PS: 从来没有对它进行过测试,但是在docs某个地方提到/_spec\.\w+$/匹配user_spec.js。

答案 2 :(得分:1)

我之前从未使用过早午餐,但如果使用RegExp查找特定路径,则可以使用以下方法排除* .min.js文件:

/^((?!vendor\/.*\.min\.js).)*$/

我使用以下答案作为参考:Regular expression to match string not containing a word?