- Notifications
You must be signed in to change notification settings - Fork18
beego/compress
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Beego Compress provides an automated system for compressing JavaScript and Css files
It default useGoogle Closure Compiler for js, andYui Compressor for css
After create a config file, you can simple use it in beego.
Movecompiler.jar andyuicompressor.jar to your beego app path. Parallel with static path.
BTW: Of course you can integrated it with other framework or use it as a command line tool.
funcSettingCompress() {// load json config fileisProductMode:=falsesetting,err:=compress.LoadJsonConf("conf/compress.json",isProductMode,"http://127.0.0.1/")iferr!=nil {beego.Error(err)return}// after use this api, can run command from shell.setting.RunCommand()ifisProductMode {// if in product mode, can use this api auto compress filessetting.RunCompress(true,false,true)}// add func to FuncMap for template usebeego.AddFuncMap("compress_js",setting.Js.CompressJs)beego.AddFuncMap("compress_css",setting.Css.CompressCss)}
In tempalte usage
...<head>...{{compress_css "lib"}}{{compress_js "lib"}}{{compress_js "app"}}</head>...
Render result when isProductMode isfalse
<!-- Beego Compress group `lib` begin --><linkrel="stylesheet"href="http://127.0.0.1/static_source/css/bootstrap.css?ver=1382331000"/><linkrel="stylesheet"href="http://127.0.0.1/static_source/css/bootstrap-theme.css?ver=1382322974"/><linkrel="stylesheet"href="http://127.0.0.1/static_source/css/font-awesome.min.css?ver=1378615042"/><linkrel="stylesheet"href="http://127.0.0.1/static_source/css/select2.css?ver=1382197742"/><!-- end --><!-- Beego Compress group `lib` begin --><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/jquery.min.js?ver=1378644427"></script><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/bootstrap.js?ver=1382328826"></script><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/lib.min.js?ver=1382328441"></script><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/jStorage.js?ver=1382271840"></script><!-- end --><!-- Beego Compress group `app` begin --><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/main.js?ver=1382195678"></script><scripttype="text/javascript"src="http://127.0.0.1/static_source/js/editor.js?ver=1382342779"></script><!-- end -->
Render result when isProductMode istrue
<linkrel="stylesheet"href="http://127.0.0.1:8092/static/css/lib.min.css?ver=1382346563"/><scripttype="text/javascript"src="http://127.0.0.1:8092/static/js/lib.min.js?ver=1382346557"></script><scripttype="text/javascript"src="http://127.0.0.1:8092/static/js/app.min.js?ver=1382346560"></script>
Full config file example.
note: All json key are not case sensitive
compress.json:
{"Js": {// SrcPath is path of source file"SrcPath": "static_source/js",// DistPath is path of compressed file"DistPath": "static/js",// SrcURL is url prefix of source file"SrcURL": "static_source/js",// DistURL is url prefix of compressed file"DistURL": "static/js","Groups": {// lib is the name of this compress group"lib": {// all compressed file will combined and save to DistFile"DistFile": "lib.min.js",// source files of this group"SourceFiles": ["jquery.min.js","bootstrap.js","lib.min.js","jStorage.js"],// skip compress file list"SkipFiles": ["jquery.min.js","lib.min.js"]},"app": {"DistFile": "app.min.js","SourceFiles": ["main.js","editor.js"]}}},"Css": {// config of css is same with js"SrcPath": "static_source/css","DistPath": "static/css","SrcURL": "static_source/css","DistURL": "static/css","Groups": {"lib": {"DistFile": "lib.min.css","SourceFiles": ["bootstrap.css","bootstrap-theme.css","font-awesome.min.css","select2.css"],"SkipFiles": ["font-awesome.min.css","select2.css"]}}}}
when use apisetting.RunCommand()
$ go build app.go$ ./app compresscompress command usage: js - compress all js files css - compress all css files all - compress all files$ ./app compress js -hUsage of compress command: js: -force=false: force compress file -skip=false: skip all cached file -v=false: verbose info$ ./app compress css -hUsage of compress command: css: -force=false: force compress file -skip=false: skip all cached file -v=false: verbose info
use -force for re-create dist file but not skip cached.use -skip can skip all cached file and re-compress.
All api can view inGoWalker
- TmpPath is default path of cached files.
- Can modifyJsFilters / CssFilters use your compress filter.
- Can modify JsTagTemplate / CssTagTemplate with your
<script>
<link>
tag.
All beego projects need your support.
Any suggestion are welcome, pleaseadd new issue let me known.
beego compress is licensed under the Apache Licence, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).
About
Beego Compress provides an automated system for compressing Css and JavaScript files
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.