`
bellstar
  • 浏览: 150891 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自动批量压缩js和css

    博客分类:
  • ruby
阅读更多
不熟悉rake,自己整了这个,使用的是yui的压缩工具,使用前需要更改引用yui压缩工具的路径
语法: genmin.rb <source dir> <mini dir>
如果要忽略某些目录或者文件,可在其当前目录下建立名为(.minignore)的文件,每一行可写一个要忽略的文件名或者目录名,目录不用加/
如果压缩前要做合并之类的动作,可在其当前目录下建立名为(.cmd)的文件,每一行可写一条要执行的shell语句
会生成genmin.log来记录运行或压缩过程中的错误
wrongArgu = false
if ARGV.length == 1 && ARGV[0] == "--help"
  puts "genmin.rb <source dir> <destination dir>"
  wrongArgu = true;
end

unless wrongArgu
  if ARGV.length == 2
    ARGV.each do |dir|
      unless File.exist?(dir) || File.directory?(dir)
        puts "#{dir} is not a directory or not exist"
        wrongArgu = true
        break
      end
    end
  else
    puts "wrong nubmer of arguments (#{ARGV.length} for 2)"
    wrongArgu = true
  end
end

unless wrongArgu


$log = File.new('genmin.log','w+')

def makemin(file,mfile)
  cmd="java -jar D:\\bin\\yc.jar \"#{file}\" --charset utf-8 -o  \"#{mfile}\""
  cmd.gsub!(/\//,"\\")
  puts cmd
  o=`#{cmd}`
  o.strip!
  if o && !o.empty?
      $log<<o if $log
  end
end

def genmin(sDir,mDir)
  mDir = File.expand_path(mDir)
  sDir = File.expand_path(sDir)
  
  fcmd = sDir + '/' + '.cmd'
  
  if File.exist?(fcmd)
    opath = Dir.pwd
    Dir.chdir(sDir)
    fc = File.new(fcmd,'r')
    cmds = fc.readlines
    fc.close
    cmds.each_index{|i| cmds[i].sub!(/\n/,'')}
    cmds.each do |x| 
      o=`#{x}`
      if o && !o.empty?
          $log<<o if $log
      end
    end
    Dir.chdir(opath)
  end
  
  
  fignore = sDir + '/' + '.minignore'
  ignores = []
  if File.exist?(fignore)
    f=File.new(fignore,'r')
    ignores = f.readlines
    f.close
    ignores.each_index {|i| ignores[i].sub!(/\n/,'')}
  end
  ignores<<'.'<<'..'
  
  Dir.foreach(sDir) do |fname|
    unless ignores.include? fname
      sfname = sDir + '/' + fname
      mfname = mDir + '/' + fname
      if File.directory?  sfname    
        unless File.exist?(mfname)
          Dir.mkdir(mfname)
        end
        puts 'genmin ' + sfname + ' to ' + mfname
        genmin(sfname,mfname)
      else
          ext = File.extname(sfname)
          if ['.js','.css'].include?(ext)
            makemin sfname,mfname
          end
      end
    end
  end
end

genmin(ARGV[0],ARGV[1])
$log.close if $log
end
分享到:
评论
1 楼 wosmvp 2009-04-29  
asset_packager is the best choice.

相关推荐

    js和css批量压缩工具

    "js和css批量压缩工具" 正是这样一个解决方案,它可以帮助我们在项目部署前有效地压缩和优化资源,提高网站的整体性能。 批量压缩的优势在于它可以一次性处理大量的文件,大大节省了手动操作的时间。对于大型项目或...

    Js、Css压缩(可批量)

    本教程将深入探讨Js和Css的压缩技术,包括批量处理方法,以及如何在压缩过程中添加版权信息和调整压缩强度。 一、Js压缩 JavaScript文件通常包含大量的注释、空格和换行符,这些在代码执行时并不必要,但却会增加...

    js、CSS批量压缩工具

    改工具可以批量压缩js、css文件。 压缩js,将js文件拷贝到文件夹in中,执行run-min.bat,文件夹out中即为压缩后的js文件。 压缩css,将css文件拷贝到文件夹css_in中,执行run-css.bat,文件夹css_out中即为压缩后的...

    使用Ant构建批量压缩js、css文件脚本

    批量压缩js和css文件不仅可以提升网站性能,还可以帮助开发者遵循持续集成和持续部署(CI/CD)的最佳实践。通过自动化这一过程,我们可以确保每次代码更新时都能得到压缩后的版本,从而减少用户等待时间,提升用户...

    压缩JS和CSS工具

    因此,为了提升网页性能,开发者通常会使用"压缩JS和CSS工具"对这些文件进行优化,减少它们的大小,从而加快页面加载速度。本文将深入探讨JS和CSS压缩的原理、方法以及TBCompressor这款工具的应用。 JS和CSS压缩的...

    批量JS压缩美化CSS压缩工具SoCompressor

    批量JS压缩美化CSS压缩工具SoCompressor就是这样一个工具,它专为开发者设计,帮助他们快速有效地处理JavaScript(JS)和层叠样式表(CSS)文件,以减小文件大小,提高页面加载速度。 JavaScript和CSS文件是网页...

    Javascript、CSS压缩工具(支持批量压缩)

    "Javascript、CSS压缩工具(支持批量压缩)"就是这样一款实用的工具,它能够快速有效地处理多个文件,节省带宽,提升网页加载速度。 1. JavaScript压缩: JavaScript压缩的主要目的是去除代码中的空白、注释以及...

    CSSJS批量压缩工具

    例如,如果你有一个名为"CSSJS批量压缩优化"的压缩包,其中包含了多个CSS和JS文件,你可以一次性将它们全部导入到YUI Compressor中进行压缩。这一步骤通常包括以下过程: 1. **下载与安装**:首先,你需要从官方...

    JAVA批量压缩JS

    本篇文章将深入探讨“JAVA批量压缩JS”的主题,以及如何利用工具或自定义程序来实现对JavaScript和CSS的压缩,从而提高网页加载速度和整体性能。 一、JavaScript与CSS压缩的重要性 1. 减少文件大小:未压缩的JS和...

    JS+CSS批量压缩工具

    2: js和css文件的输入输出目录最好不同,否则会把压缩完成后,会覆盖掉被压缩文件。 3:可以遍历文件夹下的子文件夹!并全部压缩! 4: 文件中如果有不可去点汉字,有乱码问题,需手动修改!

    JS、CSS批量压缩、混淆、美化、格式化工具

    Javascript与CSS压缩工具(支持批量压缩),压缩率高,很好用

    js,css压缩工具

    - **yuicompressor-2.4.6.jar**: 这是YUI Compressor的Java可执行文件,是用于压缩JS和CSS的核心组件,支持去除代码中的空格、换行和注释,从而减小文件大小。 - **使用说明.txt**: 提供了详细的工具使用指南,帮助...

    JS CSS压缩工具

    YUI Compressor 是 Yahoo 开发的工具,支持CSS和JavaScript的压缩,同时也提供了Java和JavaScript版本。 使用JS CSS压缩工具时,开发者通常会将其整合到构建流程,如使用 Gulp、Grunt 或 Webpack 这样的任务运行器...

    JS_CSS文件压缩工具(2)

    "JS_CSS文件压缩工具(2)"提供了批量压缩功能,这意味着用户可以一次性处理多个JS或CSS文件,极大地提高了工作效率。这一特性对于那些拥有大量脚本和样式表的大型项目尤其有用,因为它减少了逐个文件手动压缩的繁琐...

    网站CSS代码js代码压缩工具

    1. 自动化压缩:用户只需上传或输入CSS和JS代码,工具就会自动进行压缩,省去了手动优化的时间。 2. 代码合并:支持将多个CSS或JS文件合并为一个,减少HTTP请求,提升页面加载速度。 3. 保留注释和URL:在压缩过程中...

    js、css压缩加密工具

    js、css压缩加密工具,快速批量压缩js和css,混淆加密js

    JSCSS压缩工具 YUI Compressor

    例如,在Gulp中,你可以安装`gulp-yui-compressor`插件,编写任务来自动压缩JS和CSS文件: ```javascript const gulp = require('gulp'); const yuicompressor = require('gulp-yui-compressor'); gulp.task('...

    Js/Css/Images 一键压缩功能 node.js

    在IT行业中,优化网站性能是至关重要的,其中一项关键技术就是对JavaScript(Js)、CSS和图片(Images)进行压缩。本文将详细介绍如何利用Node.js实现Js/Css/Images的一键压缩功能,以及配置Node.js运行环境的相关...

    js压缩工具 基于java 支持批量js压缩

    该压缩工具基于 Google Closure Compiler,采用默认的Simple模式进行压缩,工具由一个jar包和一个批处理文件组成,实现了对目标文件夹内所有的js和css进行压缩替换的功能。工具简单方便,下载并解压后,直接双击GCC_...

Global site tag (gtag.js) - Google Analytics