mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-07 18:07:49 +00:00
Add rake task to build with closure advanced optimizations.
You would use this to compile your code _with_ underscore, to remove all those dead underscore functions you don't use. Slight tweak to code to `root._` code to get working, and must remove anonymous wrapper function for current closure compiler to remove dead code.
This commit is contained in:
22
Rakefile
22
Rakefile
@@ -1,9 +1,27 @@
|
|||||||
require 'rubygems'
|
require 'rubygems'
|
||||||
require 'closure-compiler'
|
require 'closure-compiler'
|
||||||
|
|
||||||
desc "Use the Closure Compiler to compress Underscore.js"
|
desc "Use the Closure Compiler to compress Underscore.js"
|
||||||
task :build do
|
task :build do
|
||||||
js = File.open('underscore.js', 'r')
|
js = File.open('underscore.js', 'r')
|
||||||
min = Closure::Compiler.new.compile(js)
|
min = Closure::Compiler.new.compile(js)
|
||||||
File.open('underscore-min.js', 'w') {|f| f.write(min) }
|
File.open('underscore-min.js', 'w') {|f| f.write(min) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
task :build_advanced do
|
||||||
|
js = File.read('underscore.js')
|
||||||
|
# remove wrapping anonymous function as this messes with closure compiler
|
||||||
|
# see
|
||||||
|
# http://groups.google.com/group/closure-compiler-discuss/browse_thread/thread/b59b54c1a0073aa5
|
||||||
|
js.sub!('(function() {', '').chomp!("})();\n")
|
||||||
|
compiler = Closure::Compiler.new \
|
||||||
|
:compilation_level => 'ADVANCED_OPTIMIZATIONS',
|
||||||
|
:formatting => 'PRETTY_PRINT'
|
||||||
|
min = compiler.compile(js)
|
||||||
|
File.open('underscore-min2.js', 'w') {|f| f.write(min) }
|
||||||
|
#
|
||||||
|
original_size = js.length
|
||||||
|
minimized_size = min.length
|
||||||
|
puts original_size, minimized_size
|
||||||
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -25,8 +25,9 @@
|
|||||||
var breaker = typeof StopIteration !== 'undefined' ? StopIteration : '__break__';
|
var breaker = typeof StopIteration !== 'undefined' ? StopIteration : '__break__';
|
||||||
|
|
||||||
// Create a safe reference to the Underscore object for reference below.
|
// Create a safe reference to the Underscore object for reference below.
|
||||||
var _ = root._ = function(obj) { return new wrapper(obj); };
|
var _ = function(obj) { return new wrapper(obj); };
|
||||||
|
root._ = _;
|
||||||
|
|
||||||
// Export the Underscore object for CommonJS.
|
// Export the Underscore object for CommonJS.
|
||||||
if (typeof exports !== 'undefined') exports._ = _;
|
if (typeof exports !== 'undefined') exports._ = _;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user