2013-03-27 104 views
3

我明白早午餐如何处理JavaScript文件,将它们合并为单个输出文件:早午餐配置:JavaScript文件排除* .min.js文件

files: 
    javascripts: 
     joinTo: 
     'javascripts/app.js': /^app/ 
     'javascripts/vendor.js': /^vendor/ 
     'test/javascripts/test.js': /^test(\/|\\)(?!vendor)/ 
     'test/javascripts/test-vendor.js': /^test(\/|\\)(?=vendor)/ 

二号线,例如,发生在所有的JavaScript文件的/供应商/文件夹并使得vendor.js

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

回答

5

您可以使用函数来测试针对路径。与他们的东西应该是简单的:

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

谢谢。没想到这一点。 – 2013-03-28 12:04:59

1

我从来没有使用过的早午餐,但如果是使用正则表达式来查找您可以排除特定路径*使用.min.js文件:

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

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

+0

谢谢。我认为正则表达式只适用于路径,而不是文件名。我可能是错的但是....可能是错误的,其实.. :-) – 2013-03-27 13:22:15

+0

是的,如果它只是应用于路径,这个答案是让你无处。让我知道它是如何解决的。 – Amberlamps 2013-03-27 13:24:54

2

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

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

忽略键:串,正则表达式,功能或它们的阵列。将检查 针对将由早午餐compilator被忽略的文件。

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

PS: 从来没有测试过,但在docs的地方提到过/_spec\.\w+$/与user_spec.js匹配。