In an effort to create an upgrade path from an Angular 2 app to Angular 4, this is what I changed to accomplish just that.
Do note:
- This web app predates Angular CLI and is loaded via SystemJS and not webpack.
- This effort is an instant 60% reduction in bundled Angular library code.
- Is backwards compatible with Angular 2.
tsconfig.json – BEFORE
{ "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": true, "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true, "types" : [] }, "exclude": [ "node_modules" ] }
tsconfig.json – AFTER
{ "compilerOptions": { "emitDecoratorMetadata": true, "experimentalDecorators": true, "module": "commonjs", "moduleResolution": "node", "noImplicitAny": true, "removeComments": true, "sourceMap": true, "suppressImplicitAnyIndexErrors": true, "target": "es5", "types" : [] }, "exclude": [ "node_modules/*" ] }
package.json – BEFORE
{ "dependencies": { "@angular/common": "2.4.6", "@angular/compiler": "2.4.6", "@angular/compiler-cli": "2.4.6", "@angular/core": "^2.4.6", "@angular/forms": "2.4.6", "@angular/http": "2.4.6", "@angular/platform-browser": "2.4.6", "@angular/platform-browser-dynamic": "2.4.6", "@angular/router": "3.0.0" }, "devDependencies": { "concurrently": "^2.2.0", "lite-server": "^2.2.0", "typescript": "^2.0.2", "typings": "^1.0.4" } }
package.json – AFTER
{ "dependencies": { "@angular/common": "^4.0.0", "@angular/compiler": "^4.0.0", "@angular/core": "^4.0.0", "@angular/forms": "^4.0.0", "@angular/http": "^4.0.0", "@angular/platform-browser": "^4.0.0", "@angular/platform-browser-dynamic": "^4.0.0", "@angular/router": "^4.0.0" }, "devDependencies": { "@types/node": "^6.0.60", "concurrently": "^3.1.0", "lite-server": "^2.3.0", "typescript": "^2.2.2" } }