diff options
| author | Igor Minar | 2012-08-28 12:38:34 -0700 |
|---|---|---|
| committer | Igor Minar | 2012-08-28 16:07:47 -0700 |
| commit | a4fea38b94da3012798b69dd2e785cf9c3be5e1f (patch) | |
| tree | dcb9641c24522dad67e4ac5def007d964705a9df | |
| parent | 300c5c0c99eb65fb9052e64bf86d00c0aa7988df (diff) | |
| download | angular.js-a4fea38b94da3012798b69dd2e785cf9c3be5e1f.tar.bz2 | |
chore(Rakefile): various build script changes
- restructure rake tasks
this splits up the concatination and minification into two
tasks so that we can just build angular.js quickly without wasting
time with minification which is often not needed when just debugging
some issue on 3rd party site.
- use symlinks when creating final zip file
- switch from btar to zip
- get rid of version numbers from filenames
- rewrite version numbers in all index files
Closes #1226
| -rw-r--r-- | Rakefile | 126 |
1 files changed, 42 insertions, 84 deletions
@@ -1,6 +1,13 @@ require 'yaml' include FileUtils + +## High level flow of the build: +## +## clean -> init -> concat -> minify -> package +## + + content = File.open('angularFiles.js', 'r') {|f| f.read } files = eval(content.gsub(/\};(\s|\S)*/, '}'). gsub(/angularFiles = /, ''). @@ -36,8 +43,8 @@ task :clean do end -desc 'Compile Scenario' -task :compile_scenario => :init do +desc 'Concat Scenario' +task :concat_scenario => :init do concat_file('angular-scenario.js', [ 'lib/jquery/jquery.js', @@ -48,8 +55,9 @@ task :compile_scenario => :init do ], gen_css('css/angular.css') + "\n" + gen_css('css/angular-scenario.css')) end -desc 'Compile JSTD Scenario Adapter' -task :compile_jstd_scenario_adapter => :init do + +desc 'Concat JSTD Scenario Adapter' +task :concat_jstd_scenario_adapter => :init do concat_file('jstd-scenario-adapter.js', [ 'src/ngScenario/jstd-scenario-adapter/angular.prefix', @@ -67,9 +75,9 @@ task :compile_jstd_scenario_adapter => :init do end -desc 'Compile JavaScript' -task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter] do +desc 'Concat AngularJS files' +task :concat => :init do concat_file('angular.js', [ 'src/angular.prefix', files['angularSrc'], @@ -99,14 +107,24 @@ task :compile => [:init, :compile_scenario, :compile_jstd_scenario_adapter] do FileUtils.cp 'src/ngMock/angular-mocks.js', path_to('angular-mocks.js') - closure_compile('angular.js') - closure_compile('angular-cookies.js') - closure_compile('angular-loader.js') - closure_compile('angular-resource.js') - closure_compile('angular-sanitize.js') - closure_compile('angular-bootstrap.js') - closure_compile('angular-bootstrap-prettify.js') + rewrite_file(path_to('angular-mocks.js')) do |content| + content.sub!('"NG_VERSION_FULL"', NG_VERSION.full) + end +end + +desc 'Minify JavaScript' +task :minify => [:init, :concat, :concat_scenario, :concat_jstd_scenario_adapter] do + [ 'angular.js', + 'angular-cookies.js', + 'angular-loader.js', + 'angular-resource.js', + 'angular-sanitize.js', + 'angular-bootstrap.js', + 'angular-bootstrap-prettify.js' + ].each do |file| + closure_compile(file) + end end @@ -132,78 +150,18 @@ end desc 'Create angular distribution' -task :package => [:clean, :compile, :docs] do - tarball = "angular-#{NG_VERSION.full}.tgz" - - pkg_dir = path_to("pkg/angular-#{NG_VERSION.full}") - FileUtils.rm_r(path_to('pkg'), :force => true) - FileUtils.mkdir_p(pkg_dir) - - [ path_to('angular.js'), - path_to('angular.min.js'), - path_to('angular-loader.js'), - path_to('angular-loader.min.js'), - path_to('angular-bootstrap.js'), - path_to('angular-bootstrap.min.js'), - path_to('angular-bootstrap-prettify.js'), - path_to('angular-bootstrap-prettify.min.js'), - path_to('angular-mocks.js'), - path_to('angular-cookies.js'), - path_to('angular-cookies.min.js'), - path_to('angular-resource.js'), - path_to('angular-resource.min.js'), - path_to('angular-sanitize.js'), - path_to('angular-sanitize.min.js'), - path_to('angular-scenario.js'), - path_to('jstd-scenario-adapter.js'), - path_to('jstd-scenario-adapter-config.js'), - ].each do |src| - dest = src.gsub(/^.*\//, '').gsub(/((\.min)?\.js)$/, "-#{NG_VERSION.full}\\1") - FileUtils.cp(src, pkg_dir + '/' + dest) - end - - FileUtils.cp_r path_to('i18n'), "#{pkg_dir}/i18n-#{NG_VERSION.full}" - FileUtils.cp_r path_to('docs'), "#{pkg_dir}/docs-#{NG_VERSION.full}" - - rewrite_file("#{pkg_dir}/angular-mocks-#{NG_VERSION.full}.js") do |content| - content.sub!('"NG_VERSION_FULL"', NG_VERSION.full) - end - - - [ "#{pkg_dir}/docs-#{NG_VERSION.full}/index.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-nocache.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq-nocache.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-debug.html", - "#{pkg_dir}/docs-#{NG_VERSION.full}/index-jq-debug.html" - ].each do |src| - rewrite_file(src) do |content| - content.gsub!(/'angular(.*)\.js/, '\'angular\1-' + NG_VERSION.full + '.js') - end - end - - - rewrite_file("#{pkg_dir}/docs-#{NG_VERSION.full}/docs-scenario.html") do |content| - content.sub!('angular-scenario.js', "angular-scenario-#{NG_VERSION.full}.js") - end - - - [ "#{pkg_dir}/docs-#{NG_VERSION.full}/appcache.manifest", - "#{pkg_dir}/docs-#{NG_VERSION.full}/appcache-offline.manifest" - ].each do |src| - rewrite_file(src) do |content| - content.sub!('../angular.min.js', "angular-#{NG_VERSION.full}.min.js"). - sub!('/build/docs/', "/#{NG_VERSION.full}/docs-#{NG_VERSION.full}/") - end - end - +task :package => [:clean, :minify, :docs] do + zip_dir = "angular-#{NG_VERSION.full}" + zip_file = "#{zip_dir}.zip" - %x(tar -czf #{path_to(tarball)} -C #{path_to('pkg')} .) + FileUtils.ln_s BUILD_DIR, zip_dir + %x(zip -r #{zip_file} .) + FileUtils.rm zip_dir - FileUtils.cp path_to(tarball), pkg_dir - FileUtils.mv pkg_dir, path_to(['pkg', NG_VERSION.full]) + FileUtils.mv zip_file, path_to(zip_file) + FileUtils.ln_s '../', path_to(NG_VERSION.full) - puts "Package created: #{path_to(tarball)}" + puts "Package created: #{path_to(zip_file)}" end @@ -284,7 +242,7 @@ end def closure_compile(filename) - puts "Compiling #{filename} ..." + puts "Minifying #{filename} ..." min_path = path_to(filename.gsub(/\.js$/, '.min.js')) @@ -302,7 +260,7 @@ end def concat_file(filename, deps, footer='') - puts "Building #{filename} ..." + puts "Creating #{filename} ..." File.open(path_to(filename), 'w') do |f| concat = 'cat ' + deps.flatten.join(' ') |
