aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2012-08-28 12:38:34 -0700
committerIgor Minar2012-08-28 16:07:47 -0700
commita4fea38b94da3012798b69dd2e785cf9c3be5e1f (patch)
treedcb9641c24522dad67e4ac5def007d964705a9df
parent300c5c0c99eb65fb9052e64bf86d00c0aa7988df (diff)
downloadangular.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--Rakefile126
1 files changed, 42 insertions, 84 deletions
diff --git a/Rakefile b/Rakefile
index 30b29ad1..7a104b77 100644
--- a/Rakefile
+++ b/Rakefile
@@ -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(' ')