随笔 - 180  文章 - 1  评论 - 160  阅读 - 25万

用 rake 合并多个 JS 文件,并且用 Google Closure Compiler 压缩代码

使用一款自动化的构建工具,已经成为专业的JS程序员的必备技能之一。在国内,每个前端团队都学会了用 Ant 来自动生成一系列构建的任务。但是由于 Ant 对 XML的依赖,这一大关键缺点,使得 Ant 脚本既难写又难读,也难进行重构,甚至难进行 diff。所以,rake(用Ruby编程的构建工具)越来越流行了。

下面的代码是合并多个 JS 文件的 rake 任务:

namespace :js do
    desc "合并多个 JS 文件"
    task :concatenate do
        filename3 = "E:\\all.js"
        logfile = File.new(filename3, 'w');
        joinFiles = ["E:\\a.js", "E:\\b.js"];
        for files in joinFiles
            if File.exists?(files)
                file = File.new(files, 'r')
                file.each_line do |line1|
                    logfile.puts(line1)
                end
            end
        end
    end
end

如何执行 rake呢?

假如 Ruby 源代码文件为 build.rb,那么在 windows 命令行中输入命令:

rake –f build.rb js:concatenate

然后回车。

可能就会有人问了:可以结合 Google Closure Compiler 使用来进行代码压缩吗?答案是肯定的!

下面是带传参的调用 GCC 的 rake 任务:

desc "用 Google Closure Compiler 进行编译"
task :gcc, :compiled_path, :needs => :concatenate do |t, args|
    require 'rubygems'
    require 'win32/open3'
   
    cmd = "java -jar D:\\compiler\\compiler.jar --js " + concatenateFilename + " --js_output_file " + args.compiled_path
    Open3.popen3(cmd)
end

在 windows 命令行中输入命令:

rake –f build.rb "js:gcc[E:\all-min.js]"

然后回车。

对JS程序员来说,使用rake的唯一缺点是学习Ruby的成本了。所以,用nodeJS来实现相同的功能也是在国内前端界同行们越来越流行的趋势。

(完)

posted on   豆豆の爸爸  阅读(2216)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
< 2011年5月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4
5 6 7 8 9 10 11

点击右上角即可分享
微信分享提示