test: cleanup rxjs custom build
The latest rxjs release works with closure compiler out of the box. We no longer need to compile our own. Also put closure options into a file rather than using a shell script.
This commit is contained in:
parent
7f9c589ba3
commit
5856298798
|
@ -1,4 +1,3 @@
|
|||
/rxjs/
|
||||
built/
|
||||
dist/
|
||||
vendor/
|
||||
|
|
|
@ -32,13 +32,7 @@ Angular's `node_modules` is installed.
|
|||
|
||||
## Running integration tests
|
||||
|
||||
The first time you run the tests, you'll need some setup:
|
||||
|
||||
```shell
|
||||
$ ./integration/build_rxjs_es6.sh
|
||||
```
|
||||
|
||||
Now you can iterate on the tests by keeping the dist folder up-to-date.
|
||||
You can iterate on the tests by keeping the dist folder up-to-date.
|
||||
See the `package.json` of the test(s) you're debugging, to see which dist/ folders they install from.
|
||||
Then run the right `tsc --watch` command to keep those dist folders up-to-date, for example:
|
||||
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This script builds rxjs from source, with an ES6 target, and with tsickle turned on.
|
||||
# We need to do this until we work with the RxJS team to get a distribution that works
|
||||
# with Closure Compiler.
|
||||
# Note that in nodejs, we still run the standard RxJS distribution. This one is only
|
||||
# used for the bundle that targets a browser runtime.
|
||||
# TODO(alexeagle): discuss with Jay Phelps once we have a recommendation
|
||||
|
||||
set -e -o pipefail
|
||||
|
||||
cd `dirname $0`
|
||||
|
||||
rm -rf rxjs
|
||||
git clone https://github.com/ReactiveX/rxjs.git --depth=200
|
||||
git -C rxjs/ checkout 5.0.3
|
||||
cp rxjs.tsconfig.json rxjs/
|
||||
TSC="node --max-old-space-size=3000 ../dist/tools/@angular/tsc-wrapped/src/main"
|
||||
$TSC -p rxjs/rxjs.tsconfig.json
|
|
@ -1,53 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Build a folder using angular ES6 and the closure compiler
|
||||
|
||||
set -e -o pipefail
|
||||
|
||||
# The ES6 distro we built for rxjs works only in the browser, not in nodejs.
|
||||
# Since we installed rxjs in node_modules for ngc to use, we have to point
|
||||
# to the alternate distro when compiling with closure.
|
||||
rm -rf vendor
|
||||
mkdir vendor
|
||||
cp -pr ../rxjs/dist/es6 vendor/rxjs
|
||||
|
||||
CLOSURE_ARGS=(
|
||||
"--language_in=ES6_STRICT"
|
||||
"--language_out=ES5"
|
||||
"--compilation_level=ADVANCED_OPTIMIZATIONS"
|
||||
"--warning_level=QUIET"
|
||||
"--js_output_file=dist/bundle.js"
|
||||
"--create_source_map=%outname%.map"
|
||||
"--variable_renaming_report=dist/variable_renaming_report"
|
||||
"--property_renaming_report=dist/property_renaming_report"
|
||||
|
||||
# Don't include ES6 polyfills
|
||||
"--rewrite_polyfills=false"
|
||||
|
||||
# List of path prefixes to be removed from ES6 & CommonJS modules.
|
||||
"--js_module_root=node_modules/@angular/core"
|
||||
"--js_module_root=node_modules/@angular/common"
|
||||
"--js_module_root=node_modules/@angular/compiler"
|
||||
"--js_module_root=node_modules/@angular/platform-browser"
|
||||
"--js_module_root=vendor"
|
||||
|
||||
# Uncomment for easier debugging
|
||||
# "--formatting=PRETTY_PRINT"
|
||||
|
||||
node_modules/@angular/core/src/testability/testability.externs.js
|
||||
node_modules/zone.js/dist/zone.js
|
||||
$(find -L vendor/rxjs -name *.js)
|
||||
node_modules/@angular/core/@angular/core.js
|
||||
node_modules/@angular/common/@angular/common.js
|
||||
node_modules/@angular/compiler/@angular/compiler.js
|
||||
node_modules/@angular/platform-browser/@angular/platform-browser.js
|
||||
"built/src/*.js"
|
||||
"--entry_point=./built/src/main"
|
||||
)
|
||||
|
||||
java -jar node_modules/google-closure-compiler/compiler.jar $(echo ${CLOSURE_ARGS[*]})
|
||||
# gzip on Travis doesn't have --keep option so copy the original file first
|
||||
cp dist/bundle.js dist/bundle.tmp
|
||||
gzip -f dist/bundle.js
|
||||
mv dist/bundle.tmp dist/bundle.js
|
||||
ls -alH dist/bundle*
|
|
@ -0,0 +1,30 @@
|
|||
--compilation_level=ADVANCED_OPTIMIZATIONS
|
||||
--language_out=ES5
|
||||
--js_output_file=dist/bundle.js
|
||||
--output_manifest=dist/manifest.MF
|
||||
--variable_renaming_report=dist/variable_renaming_report
|
||||
--property_renaming_report=dist/property_renaming_report
|
||||
--create_source_map=%outname%.map
|
||||
|
||||
--warning_level=QUIET
|
||||
--dependency_mode=STRICT
|
||||
--rewrite_polyfills=false
|
||||
|
||||
node_modules/zone.js/dist/zone_externs.js
|
||||
|
||||
--js node_modules/rxjs/**.js
|
||||
--process_common_js_modules
|
||||
--module_resolution=node
|
||||
|
||||
node_modules/@angular/core/@angular/core.js
|
||||
--js_module_root=node_modules/@angular/core
|
||||
node_modules/@angular/core/src/testability/testability.externs.js
|
||||
|
||||
node_modules/@angular/common/@angular/common.js
|
||||
--js_module_root=node_modules/@angular/common
|
||||
|
||||
node_modules/@angular/platform-browser/@angular/platform-browser.js
|
||||
--js_module_root=node_modules/@angular/platform-browser
|
||||
|
||||
--js built/**.js
|
||||
--entry_point=built/src/main
|
|
@ -5,7 +5,8 @@
|
|||
"server": {
|
||||
"baseDir": "src",
|
||||
"routes": {
|
||||
"/dist": "dist"
|
||||
"/dist": "dist",
|
||||
"/node_modules": "node_modules"
|
||||
},
|
||||
"middleware": {
|
||||
"0": null
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
"@angular/platform-browser": "file:../../dist/packages-dist/platform-browser",
|
||||
"@angular/platform-server": "file:../../dist/packages-dist/platform-server",
|
||||
"@angular/tsc-wrapped": "file:../../dist/tools/@angular/tsc-wrapped",
|
||||
"google-closure-compiler": "20161201.0.0",
|
||||
"rxjs": "file:../../node_modules/rxjs",
|
||||
"google-closure-compiler": "20170409.0.0",
|
||||
"rxjs": "5.3.1",
|
||||
"typescript": "2.1.6",
|
||||
"zone.js": "0.7.6"
|
||||
"zone.js": "0.8.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jasmine": "2.5.41",
|
||||
|
@ -23,7 +23,8 @@
|
|||
"protractor": "file:../../node_modules/protractor"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "ngc && ./bundle.sh && concurrently \"yarn run serve\" \"yarn run protractor\" --kill-others --success first",
|
||||
"closure": "java -jar node_modules/google-closure-compiler/compiler.jar --flagfile closure.conf",
|
||||
"test": "ngc && yarn run closure && concurrently \"yarn run serve\" \"yarn run protractor\" --kill-others --success first",
|
||||
"serve": "lite-server -c e2e/browser.config.json",
|
||||
"preprotractor": "tsc -p e2e",
|
||||
"protractor": "protractor e2e/protractor.config.js"
|
||||
|
|
|
@ -1,14 +1,18 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Hello World</title>
|
||||
<base href="/">
|
||||
</head>
|
||||
<body>
|
||||
<hello-world-app>Loading...</hello-world-app>
|
||||
|
||||
<script src="dist/bundle.js"></script>
|
||||
<body>
|
||||
<hello-world-app>Loading...</hello-world-app>
|
||||
|
||||
<script src="node_modules/zone.js/dist/zone.min.js"></script>
|
||||
<script src="dist/bundle.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -4,12 +4,6 @@ set -e -o pipefail
|
|||
|
||||
cd `dirname $0`
|
||||
|
||||
if [ ! -d "rxjs/dist/es6" ]; then
|
||||
echo "You must run build the ES2015 version of RxJS for some tests:"
|
||||
echo "./integration/build_rxjs_es6.sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Workaround https://github.com/yarnpkg/yarn/issues/2165
|
||||
# Yarn will cache file://dist URIs and not update Angular code
|
||||
readonly cache=.yarn_local_cache
|
||||
|
@ -20,7 +14,7 @@ rm_cache
|
|||
mkdir $cache
|
||||
trap rm_cache EXIT
|
||||
|
||||
for testDir in $(ls | grep -v rxjs | grep -v node_modules) ; do
|
||||
for testDir in $(ls | grep -v node_modules) ; do
|
||||
[[ -d "$testDir" ]] || continue
|
||||
echo "#################################"
|
||||
echo "Running integration test $testDir"
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
{
|
||||
"angularCompilerOptions": {
|
||||
"skipMetadataEmit": true,
|
||||
"annotationsAs": "static fields",
|
||||
"annotateForClosureCompiler": true
|
||||
},
|
||||
|
||||
"compilerOptions": {
|
||||
"types": [],
|
||||
/**
|
||||
* Remaining options are copied from
|
||||
* https://github.com/ReactiveX/rxjs/blob/cba74135810a8e6bbe0b3c7732e8544b0869589e/tsconfig.json
|
||||
* TODO(alexeagle): use "extends" instead when Angular is on TS 2.1
|
||||
*/
|
||||
"removeComments": false,
|
||||
"preserveConstEnums": true,
|
||||
"sourceMap": true,
|
||||
"declaration": true,
|
||||
"noImplicitAny": true,
|
||||
"noImplicitReturns": true,
|
||||
"noImplicitThis": true,
|
||||
"suppressImplicitAnyIndexErrors": true,
|
||||
"moduleResolution": "node",
|
||||
"module": "es2015",
|
||||
"target": "es6",
|
||||
"outDir": "dist/es6",
|
||||
"lib": [
|
||||
"es5",
|
||||
"es2015.iterable",
|
||||
"es2015.collection",
|
||||
"es2015.promise",
|
||||
"dom"
|
||||
]
|
||||
},
|
||||
"formatCodeOptions": {
|
||||
"indentSize": 2,
|
||||
"tabSize": 2
|
||||
},
|
||||
"files": [
|
||||
"src/Rx.ts"
|
||||
]
|
||||
}
|
|
@ -37,16 +37,6 @@ travisFoldStart "tsc a bunch of useless stuff"
|
|||
travisFoldEnd "tsc a bunch of useless stuff"
|
||||
|
||||
|
||||
# Build integration tests
|
||||
if [[ ${CI_MODE:-} == "e2e_2" ]]; then
|
||||
travisFoldStart "build.integration"
|
||||
cd "`dirname $0`/../../integration"
|
||||
./build_rxjs_es6.sh
|
||||
cd -
|
||||
travisFoldEnd "build.integration"
|
||||
fi
|
||||
|
||||
|
||||
# Build angular.io
|
||||
if [[ ${CI_MODE:-} == "aio" ]]; then
|
||||
travisFoldStart "build.aio"
|
||||
|
|
Loading…
Reference in New Issue