diff --git a/build.sh b/build.sh index ea085cbdcd..cda38ed9f3 100755 --- a/build.sh +++ b/build.sh @@ -4,74 +4,97 @@ set -e -o pipefail cd `dirname $0` +PACKAGES=(core + compiler + common + forms + platform-browser + platform-browser-dynamic + platform-server + platform-webworker + platform-webworker-dynamic + http + router + upgrade + compiler-cli + benchpress) +BUILD_ALL=true +BUNDLE=true + +for ARG in "$@"; do + case "$ARG" in + --packages=*) + PACKAGES_STR=${ARG#--packages=} + PACKAGES=( ${PACKAGES_STR//,/ } ) + BUILD_ALL=false + ;; + --bundle=*) + BUNDLE=( "${ARG#--bundle=}" ) + ;; + *) + echo "Unknown option $ARG." + exit 1 + ;; + esac +done + export NODE_PATH=${NODE_PATH}:$(pwd)/dist/all:$(pwd)/dist/tools - - -rm -rf ./dist/all/ -mkdir -p ./dist/all/ - -TSCONFIG=./tools/tsconfig.json -echo "====== (all)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" -$(npm bin)/tsc -p ${TSCONFIG} -cp ./tools/@angular/tsc-wrapped/package.json ./dist/tools/@angular/tsc-wrapped - -echo "====== Copying files needed for e2e tests =====" -cp -r ./modules/playground ./dist/all/ -cp -r ./modules/playground/favicon.ico ./dist/ -#rsync -aP ./modules/playground/* ./dist/all/playground/ -mkdir ./dist/all/playground/vendor -cd ./dist/all/playground/vendor -ln -s ../../../../node_modules/core-js/client/core.js . -ln -s ../../../../node_modules/zone.js/dist/zone.js . -ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js . -ln -s ../../../../node_modules/systemjs/dist/system.src.js . -ln -s ../../../../node_modules/base64-js/lib/b64.js . -ln -s ../../../../node_modules/reflect-metadata/Reflect.js . -ln -s ../../../../node_modules/rxjs . -ln -s ../../../../node_modules/angular/angular.js . -cd - - -echo "====== Copying files needed for benchmarks =====" -cp -r ./modules/benchmarks ./dist/all/ -cp -r ./modules/benchmarks/favicon.ico ./dist/ -mkdir ./dist/all/benchmarks/vendor -cd ./dist/all/benchmarks/vendor -ln -s ../../../../node_modules/core-js/client/core.js . -ln -s ../../../../node_modules/zone.js/dist/zone.js . -ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js . -ln -s ../../../../node_modules/systemjs/dist/system.src.js . -ln -s ../../../../node_modules/base64-js/lib/b64.js . -ln -s ../../../../node_modules/reflect-metadata/Reflect.js . -ln -s ../../../../node_modules/rxjs . -ln -s ../../../../node_modules/angular/angular.js . -ln -s ../../../../bower_components/polymer . -ln -s ../../../../node_modules/incremental-dom/dist/incremental-dom-cjs.js -cd - - -TSCONFIG=./modules/tsconfig.json -echo "====== (all)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" -# compile ts code TSC="node --max-old-space-size=3000 dist/tools/@angular/tsc-wrapped/src/main" UGLIFYJS=`pwd`/node_modules/.bin/uglifyjs -$TSC -p modules/tsconfig.json +TSCONFIG=./tools/tsconfig.json +echo "====== (tools)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" +rm -rf ./dist/tools/ +mkdir -p ./dist/tools/ +$(npm bin)/tsc -p ${TSCONFIG} -rm -rf ./dist/packages-dist +cp ./tools/@angular/tsc-wrapped/package.json ./dist/tools/@angular/tsc-wrapped -for PACKAGE in \ - core \ - compiler \ - common \ - forms \ - platform-browser \ - platform-browser-dynamic \ - platform-server \ - platform-webworker \ - platform-webworker-dynamic \ - http \ - router \ - upgrade \ - compiler-cli \ - benchpress +if [[ ${BUILD_ALL} == true ]]; then + rm -rf ./dist/all/ + mkdir -p ./dist/all/ + + echo "====== Copying files needed for e2e tests =====" + cp -r ./modules/playground ./dist/all/ + cp -r ./modules/playground/favicon.ico ./dist/ + #rsync -aP ./modules/playground/* ./dist/all/playground/ + mkdir ./dist/all/playground/vendor + cd ./dist/all/playground/vendor + ln -s ../../../../node_modules/core-js/client/core.js . + ln -s ../../../../node_modules/zone.js/dist/zone.js . + ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js . + ln -s ../../../../node_modules/systemjs/dist/system.src.js . + ln -s ../../../../node_modules/base64-js/lib/b64.js . + ln -s ../../../../node_modules/reflect-metadata/Reflect.js . + ln -s ../../../../node_modules/rxjs . + ln -s ../../../../node_modules/angular/angular.js . + cd - + + echo "====== Copying files needed for benchmarks =====" + cp -r ./modules/benchmarks ./dist/all/ + cp -r ./modules/benchmarks/favicon.ico ./dist/ + mkdir ./dist/all/benchmarks/vendor + cd ./dist/all/benchmarks/vendor + ln -s ../../../../node_modules/core-js/client/core.js . + ln -s ../../../../node_modules/zone.js/dist/zone.js . + ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js . + ln -s ../../../../node_modules/systemjs/dist/system.src.js . + ln -s ../../../../node_modules/base64-js/lib/b64.js . + ln -s ../../../../node_modules/reflect-metadata/Reflect.js . + ln -s ../../../../node_modules/rxjs . + ln -s ../../../../node_modules/angular/angular.js . + ln -s ../../../../bower_components/polymer . + ln -s ../../../../node_modules/incremental-dom/dist/incremental-dom-cjs.js + cd - + + TSCONFIG=./modules/tsconfig.json + echo "====== (all)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} =====" + # compile ts code + $TSC -p modules/tsconfig.json + + rm -rf ./dist/packages-dist +fi + +for PACKAGE in ${PACKAGES[@]} do PWD=`pwd` SRCDIR=${PWD}/modules/@angular/${PACKAGE} @@ -81,6 +104,8 @@ do UMD_ES5_MIN_PATH=${DESTDIR}/bundles/${PACKAGE}.umd.min.js LICENSE_BANNER=${PWD}/modules/@angular/license-banner.txt + rm -rf ${DESTDIR} + echo "====== COMPILING: ${TSC} -p ${SRCDIR}/tsconfig.json =====" $TSC -p ${SRCDIR}/tsconfig-build.json @@ -103,7 +128,12 @@ do find ${DESTDIR} -type f -name '*.d.ts' -print0 | xargs -0 sed -i -E 's/^( +)abstract ([[:alnum:]]+\:)/\1\2/g' fi - if [[ ${PACKAGE} != compiler-cli && ${PACKAGE} != benchpress ]]; then + if [[ ${PACKAGE} == benchpress ]]; then + cp ${SRCDIR}/*.md ${DESTDIR} + cp -r ${SRCDIR}/docs ${DESTDIR} + fi + + if [[ ${BUNDLE} == true && ${PACKAGE} != compiler-cli && ${PACKAGE} != benchpress ]]; then echo "====== BUNDLING: ${SRCDIR} =====" mkdir ${DESTDIR}/bundles