2012-02-27 70 views
1

我有一个使用jsmin来缩小文件的rakefile。我需要做的一件事就是拥有一组文件,这些文件将用作黑名单,在运行minify脚本时jsmin不会包含这些黑名单。红宝石文件名黑名单阵列

jsFolder = "./scripts" 
    cssFolder = "./stylesheets" 
    blackList = [blackListedFile.js] #this is what i need. 
    minifiedFileRootPath = "./" 

    task :minify_each_file, [:type] do |t, args| 
      args.with_defaults(:type => "js") 
      sourceFolder = args.type == 'js' ? jsFolder : cssFolder 
      listOfFilesToMinify = Dir.glob(sourceFolder << "/**/*." << args.type) 
      listOfFilesToMinify.each do |sourceFile| 
      minifiedFile = sourceFile.sub("."+ args.type,".min" + args.type) 
      puts minifiedFile 
      puts sourceFile 
      minifyone sourceFile, minifiedFile 
     end 
    end 

回答

2

变化:

listOfFilesToMinify.each do |sourceFile| 

(listOfFilesToMinify - blackList).each do |sourceFile| 

,并使用以下语法黑名单阵列:

blackList = %w{foo bar} 

它应该工作的罚款。

+0

除了方案中,如果将被压缩的文件是一个文件夹内,在前面加上了黑名单的文件和完整路径中的文件,例如: 'cssFolder =“./stylesheet/” 黑名单= [“/blacklistedFile.css”,“/anotherBlackListedFile.css"].collect {| x | cssFolder + x}' – franticfrantic 2012-02-29 03:45:12