`
jsntghf
  • 浏览: 2527731 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

PackR--ruby下的JavaScript压缩工具

阅读更多

PackR是一个ruby版的JavaScript压缩工具。


它有如下几个特性:
* 自动去除空格和注释等
* 支持变量名压缩
* 支持private标识符的压缩和模糊处理
* 支持Base-62编码

 

安装PackR很简单,执行以下命令即可:

gem install packr

 

使用PackR前必须在ruby应用中加上以下这句:

require 'packr'

 

接下来举几个简单的例子:

code = File.read('public/javascripts/menu.js')
compressed = Packr.pack(code)
File.open('public/javascripts/menu-min.js', 'wb') { |f| f.write(compressed) }

 

code = File.read('public/javascripts/menu.js')
compressed = Packr.pack(code, :shrink_vars => true, :base62 => true)
File.open('public/javascripts/menu-min.js', 'wb') { |f| f.write(compressed) }

 

code = File.read('public/javascripts/menu.js')
compressed = Packr.pack(code, :shrink_vars => true, :protect => %w[$super self])
File.open('public/javascripts/menu-min.js', 'wb') { |f| f.write(compressed) }

 

code = File.read('public/javascripts/menu.js')
compressed = Packr.pack(code, :private => true)
File.open('public/javascripts/menu-min.js', 'wb') { |f| f.write(compressed) }

 

以下是对一些选项的简要说明:
* :shrink_vars -- 设置成true时表示启用变量名压缩
* :private -- 设置成true时表示启用private标识符的压缩和模糊处理
* :base62 -- 设置成true时表示启用Base-62编码
* :protect -- 压缩保护的变量名组成的数组

 

你也可以通过命令行进行压缩处理:

packr menu.js > menu-min.js

 

可以通过加入-b选项进行base62压缩,例如:

packr menu.js > menu-min.js -b

 

可以通过-help选项查看帮助信息,例如:

packr -help

  

除此之外,你可以通过apache来为文件提供压缩服务。只要在.htaccess文件中加入以下这段即可:

AddEncoding gzip .gz
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{HTTP_USER_AGENT} !Safari
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]

 

感兴趣的朋友可以到http://dean.edwards.name/packer试下效果。

分享到:
评论

相关推荐

    开源项目-fiskeben-packr-source-driver.zip

    开源项目“fiskeben-packr-source-driver.zip”是针对golang-migrate的一个源驱动程序,旨在简化数据库迁移过程。golang-migrate是一个流行的、用于在Go语言中管理数据库迁移的库,它支持多种数据库系统,如MySQL、...

    Packr-crx插件

    "Packr-crx插件"是一款专为Google Chrome浏览器设计的高效标签管理工具,它针对英语用户群体,提供了强大的功能,让用户的浏览体验更加便捷和有序。这款扩展程序旨在帮助用户整理并保存大量的标签页,以便在需要时...

    java打包exe 更换图标

    我们只需要launch.exe、launcher.cfg两个文件,将这两个文件复制到打包文件所在的目录。launcher.cfg是一个仅三...所以可以在同一个文件目录下有多个exe可执行文件,exe文件名可以修改,配置文件最好是跟exe文件同名。

    Go-packr将静态文件嵌入到Go二进制文件中的简单易用的方法

    在Go编程语言中,处理...在提供的压缩文件`gobuffalo-packr-9eb7a3d`中,很可能包含了`Go-packr`库的一个特定版本,以及可能的示例代码或文档。解压后,你可以深入研究其内容,进一步了解`Go-packr`的使用和实现细节。

    开源项目-gobuffalo-packr.zip

    【开源项目-gobuffalo-packr.zip】是一个用于Go语言应用开发的开源工具,它提供了一个简洁的方法,将静态资产(如HTML、CSS、JavaScript文件)直接嵌入到最终的二进制可执行文件中。这使得Go应用程序可以作为一个自...

    packr:打包您的JAR,资产和JVM,以在Windows,Linux和Mac OS X上分发

    从Java 14开始,JDK附带了一个名为的新工具。 jpackage和packr之间有很多重叠。 考虑到jpackage得到更广泛的OpenJDK社区的支持,值得研究。 对于您的产品,这可能是一个更好的解决方案。 下载 最新版本可在。

    lein-packr:使用 Packr 将 uberjar 与 JRE 捆绑在一起的 Lein 插件

    打包机 使用 Packr 将 JRE 与 uberjar 捆绑在一起的 ... 在 Windows 上运行时,这些 JRE 缓存在~/.lein-packr-cache/或用户主文件夹的等效子目录中。 目前最小化不是很好,你不能向 JVM 传递长参数( -XX:+TieredCompi

    将静态文件嵌入Go二进制文件中(替换gobuffalo / packr)-Golang开发

    github.com/markbates/pkger是用于将静态文件嵌入到Go二进制文件中的工具。 希望它将替代github.com/gobuffalo/packr/v2。 Pkger github.com/markbates/pkger是用于将静态文件嵌入Go二进制文件的工具。 希望它将替代...

    golang-box:准备Golang开发环境的Packer模板

    Golang 盒子 准备Golang开发环境的Packer模板 描述 您可以通过以下过程轻松设置 Golang 开发环境。 创建流浪文件: # -*- mode: ruby -*- ...工具 centos-7.0-x86_64-golang CentOS 7.0 x86_64

    Packr_App_ui_界面设计_sketch素材下载.zip

    描述中提到的"packr-travel-checklist-app-interpid16.sketch"是压缩包内的主要文件,这很可能是Packr应用的旅行清单部分的设计草图。在这个文件中,设计师可能会详细描绘出各种用户界面,包括登录/注册页面、主菜单...

    laravel-packer:令人敬畏的命令行工具,可加快创建包的速度

    Laravel Packer由创建并维护,它是一个命令行工具,它将帮助您创建软件包。 基于。 在找到详细的教程 产品特点 安装 通过作曲家安装。 注意:对于Windows用户,请首先运行composer global update composer ...

    example-go-react-macos-app-1:Go(Golang)和React.js上的示例本机macOS应用

    Go(Golang)和React.js上的示例本机macOS应用这是文章第1部分的完整代码示例。 于2019年12月04日在发布,并于... which should be available for calling# from the console in $GOPATH /bin/packr:go get -u github

    batch-google-tran

    `packr`是Go语言中的一个构建工具,它允许开发者将静态文件(如HTML、CSS、JavaScript等)与Go程序一起打包。在本项目中,`packr`可能用于处理和打包与翻译相关的配置或模板文件。执行`go get -u github....

    packer-shell-scripts:用于配置打包程序构建的 Cloudspace DevOps shell 脚本

    在这个背景下,`packer-shell-scripts` 是一套用于配置Packer进行构建的Cloudspace DevOps shell脚本。Packer是HashiCorp公司开发的一款强大的基础设施自动化工具,它允许用户创建一致的机器镜像,适用于多种云平台...

    sift:在分支上执行代码审查的本地工具

    筛选-审核代码的工具目录安装使用二进制版本有针对64位GNU / Linux和MacOS系统的预编译版本。 # for GNU/Linux usewget -O sift ...

    gdx-deploy-sample:LibGDX的示例Gradle配置,用于准备和部署发行版

    这个配置涉及到多个关键工具和技术,包括Gradle构建系统、ProGuard混淆工具、Packr打包工具等。 首先,让我们深入了解一下Gradle。Gradle是一个基于Apache Ant和Maven概念的项目自动化构建工具,具有灵活性和强大的...

    libgdx-addons:LibGDX projet的附加组件(Ashley附加组件,Aseprite,Packr的gradle插件,...)

    :添加Packr任务以将JVM与游戏捆绑在一起; :将Aseprite文件导出到spritesheet。LibGDX库 :libgdx核心的扩展方法; : 扩展方法和几个基本组件/系统; :允许将Aseprite JSON和纹理加载为Animation或提取切片; ...

    将静态文件嵌入Go二进制文件的简便方法。-Golang开发

    它具有惯用的API,最小的依赖关系,更强大的测试套件(直接针对std lib副本进行了测试),透明的工具等。 https://注意:请考虑将您的项目迁移到github.com/markbates/pkger。 它具有惯用的API,最小的依赖关系,更...

    go-starwars:Go编写的《星际大战》

    GO111MODULE=on packr install 使用Docker docker run --rm -it skanehira/go-starwars 用法 # run $ go-starwars # options $ go-starwars -h Usage of go-starwars: -s int speed, up speed by making it ...

Global site tag (gtag.js) - Google Analytics