Files
angular__angular/scripts/ci/prerender.sh
T
Jeremy Elbourn 97d69fb3f8 build: add ci task for server-side prerender (#4808)
This adds a new task for Travis CI to prerender an app using
@angular/material. This change starts off by only adding buttons to the
application; more components will be added in a subsequent PR so that
this one stays focused on the set-up.
2017-05-25 17:51:11 -06:00

24 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
### Pre-renders the app under src/universal-app with platform-server and dumps the
### output to stdout.
# Go to the project root directory
cd $(dirname $0)/../..
# Build the @angular/material package and copy it into node_modules.
# This is a workaround for https://github.com/angular/angular/issues/12249
rm -rf ./node_modules/@angular/material
gulp material:build-release
cp -r ./dist/releases/material ./node_modules/@angular/
# Compile the kitchen sink app (the generated ngfactories are consumed by the prerender script)
$(npm bin)/ngc -p src/universal-app/tsconfig-ngc.json
# Run the prerender script.
# This does not use ts-node because some of the generated ngfactory.ts files are written into a
# directory called "node_modules"; ts-node intentionally will not treat any file inside of a
# "node_modules" directory as TypeScript (with the opinion that node_modules should only contain JS)
$(npm bin)/tsc -p src/universal-app/tsconfig-prerender.json
node ./src/universal-app/dist/prerender.js