Skip to content

Commit

Permalink
Changed SystemJS config and Angular 2 bundle style, replaced es6-shim…
Browse files Browse the repository at this point in the history
… with core-js
  • Loading branch information
matthias-schuetz committed Jul 9, 2016
1 parent a803c53 commit 6ce5410
Show file tree
Hide file tree
Showing 14 changed files with 150 additions and 87 deletions.
3 changes: 0 additions & 3 deletions app/index.html
Expand Up @@ -12,11 +12,8 @@

<script src="src/vendor/node_modules/system.src.js"></script>
<script src="src/vendor/node_modules/Reflect.js"></script>
<script src="src/vendor/node_modules/es6-shim.js"></script>
<script src="src/vendor/node_modules/Rx.js"></script>
<script src="src/vendor/node_modules/zone.js"></script>
<script src="src/vendor/node_modules/long-stack-trace-zone.js"></script>
<script src="src/vendor/node_modules/angular2.js"></script>

<script src="system.conf.js"></script>
<!-- @endexclude -->
Expand Down
5 changes: 0 additions & 5 deletions app/src/vendor/angular2.bundle.ts

This file was deleted.

1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/common.ts
@@ -0,0 +1 @@
import '@angular/common';
1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/compiler.ts
@@ -0,0 +1 @@
import '@angular/compiler';
1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/core.ts
@@ -0,0 +1 @@
import '@angular/core';
1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/http.ts
@@ -0,0 +1 @@
import '@angular/http';
@@ -0,0 +1 @@
import '@angular/platform-browser-dynamic';
1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/platform-browser.ts
@@ -0,0 +1 @@
import '@angular/platform-browser';
1 change: 1 addition & 0 deletions app/src/vendor/angular2.bundles/router.ts
@@ -0,0 +1 @@
import '@angular/router';
36 changes: 36 additions & 0 deletions app/system.conf.js
@@ -1,7 +1,43 @@
System.config({
baseURL: './',
map: {
'@angular': 'src/vendor/node_modules/@angular',
'rxjs': 'src/vendor/node_modules/rxjs'
},
packages: {
'src': {
defaultExtension: 'js'
},
'@angular/common': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/compiler': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/core': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/http': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser-dynamic': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/router': {
main: 'index.js',
defaultExtension: 'js'
},
'rxjs': {
defaultExtension: 'js'
}
}
});
Expand Down
172 changes: 99 additions & 73 deletions gulpfile.js
Expand Up @@ -16,6 +16,7 @@ var gulp = require('gulp');
var clean = require('gulp-clean');
var concat = require('gulp-concat');
var connect = require('gulp-connect');
var eventStream = require('event-stream');
var path = require('path');
var preprocess = require('gulp-preprocess');
var protractor = require('gulp-protractor').protractor;
Expand All @@ -39,20 +40,20 @@ var paths = {
e2eTestsSrc: './app/src/**/*.spec.e2e.js',

vendorJsLibs: {
dev: [
'./node_modules/systemjs/dist/system.src.js',
'./node_modules/systemjs/dist/system-polyfills.js',
'./node_modules/reflect-metadata/Reflect.js',
'./node_modules/es6-shim/es6-shim.js',
'./node_modules/rxjs/bundles/Rx.js',
'./node_modules/zone.js/dist/zone.js',
'./node_modules/zone.js/dist/long-stack-trace-zone.js'
],
nodeModulesRoot: './node_modules/',
dev: [
{ path: './node_modules/systemjs/dist/system.src.js', singleFile: true },
{ path: './node_modules/systemjs/dist/system-polyfills.js', singleFile: true },
{ path: './node_modules/core-js/client/shim.min.js', singleFile: true },
{ path: './node_modules/zone.js/dist/zone.js', singleFile: true },
{ path: './node_modules/zone.js/dist/long-stack-trace-zone.js', singleFile: true },
{ path: './node_modules/reflect-metadata/Reflect.js', singleFile: true },
{ path: './node_modules/rxjs/**/*.js', singleFile: false }
],
prod: {
bundle: [
'./node_modules/reflect-metadata/Reflect.js',
'./node_modules/es6-shim/es6-shim.min.js',
'./node_modules/rxjs/bundles/Rx.min.js',
'./node_modules/core-js/client/shim.min.js',
'./node_modules/zone.js/dist/zone.min.js',
'./node_modules/zone.js/dist/long-stack-trace-zone.min.js'
],
Expand All @@ -71,8 +72,16 @@ var paths = {
vendorJsDest: './app/src/vendor/node_modules',

systemjs: {
angularBundleSrc: './app/src/vendor/angular2.bundle.js',
angularBundleDest: './app/src/vendor/node_modules/angular2.js'
angularBundleSrc: [
{ path: './app/src/vendor/angular2.bundles/common.js', outFile: 'common/index.js' },
{ path: './app/src/vendor/angular2.bundles/compiler.js', outFile: 'compiler/index.js' },
{ path: './app/src/vendor/angular2.bundles/core.js', outFile: 'core/index.js' },
{ path: './app/src/vendor/angular2.bundles/http.js', outFile: 'http/index.js' },
{ path: './app/src/vendor/angular2.bundles/platform-browser.js', outFile: 'platform-browser/index.js' },
{ path: './app/src/vendor/angular2.bundles/platform-browser-dynamic.js', outFile: 'platform-browser-dynamic/index.js' },
{ path: './app/src/vendor/angular2.bundles/router.js', outFile: 'router/index.js' }
],
angularBundleDest: './app/src/vendor/node_modules/@angular'
},

serverRoot: './app',
Expand Down Expand Up @@ -122,71 +131,84 @@ var paths = {
};

var systemjsConfig = {
baseURL: './',
defaultJSExtensions: true,
paths: {
'*': 'node_modules/*',
'app/*': 'app/*'
},
map: {
'@angular': './@angular'
},
packages: {
'@angular/core': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/compiler': {
main: 'index.js',
defaultExtension: 'js'
baseURL: './',
defaultJSExtensions: true,
paths: {
'*': 'node_modules/*',
'app/*': 'app/*'
},
'@angular/common': {
main: 'index.js',
defaultExtension: 'js'
map: {
'@angular': './@angular',
'rxjs': './rxjs'
},
'@angular/http': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser-dynamic': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/router': {
main: 'index.js',
defaultExtension: 'js'
packages: {
'@angular/common': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/compiler': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/core': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/http': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/platform-browser-dynamic': {
main: 'index.js',
defaultExtension: 'js'
},
'@angular/router': {
main: 'index.js',
defaultExtension: 'js'
},
'rxjs': {
defaultExtension: 'js'
}
}
}
};
};

/**
* Development tasks
*/
gulp.task('dev:bundle:angular', function(done) {
var systemjs = new SystemJsBuilder(systemjsConfig);
var angular2ModuleBundleTasks = [];

paths.dev.systemjs.angularBundleSrc.forEach(function(module) {
gulp.task('dev:bundle:angular:' + module.outFile, function(done) {
var systemjs = new SystemJsBuilder(systemjsConfig);

systemjs
.bundle(
module.path,
paths.dev.systemjs.angularBundleDest + '/' + module.outFile,
{
normalize: true,
sourceMaps: false,
minify: false,
mangle: false
})
.then(function() {
gulp
.src([paths.dev.systemjs.angularBundleDest + '/' + module.outFile])
.pipe(gulp.dest(paths.dev.systemjs.angularBundleDest + '/' + module.outFile.split('/')[0]));

done();
});
});

systemjs
.bundle(
paths.dev.systemjs.angularBundleSrc,
paths.dev.systemjs.angularBundleDest,
{
normalize: true,
sourceMaps: false,
minify: false,
mangle: false
})
.then(function() {
gulp
.src([paths.dev.systemjs.angularBundleDest])
.pipe(replace(/\/index\.js/g, ''))
.pipe(gulp.dest(paths.dev.vendorJsDest));
angular2ModuleBundleTasks.push('dev:bundle:angular:' + module.outFile);
});

done();
});
runSequence(angular2ModuleBundleTasks, done);
});

gulp.task('dev:clean', function() {
Expand All @@ -213,8 +235,12 @@ gulp.task('dev:compile:typescript', function() {
});

gulp.task('dev:copy:vendor-js', function() {
return gulp.src(paths.vendorJsLibs.dev)
.pipe(gulp.dest(paths.dev.vendorJsDest));
var streams = paths.vendorJsLibs.dev.map(function(ref) {
return gulp.src(ref.path, { base: ref.singleFile ? '' : paths.vendorJsLibs.nodeModulesRoot })
.pipe(gulp.dest(paths.dev.vendorJsDest));
});

return eventStream.concat.apply(eventStream, streams);
});

gulp.task('dev:tslint', function() {
Expand Down Expand Up @@ -292,7 +318,7 @@ gulp.task('reload:dev', function() {

gulp.task('serve:dev', function() {
connect.server({
port: "8080",
port: '8080',
root: paths.dev.serverRoot,
fallback: paths.dev.serverFallback,
livereload: true
Expand All @@ -301,7 +327,7 @@ gulp.task('serve:dev', function() {

gulp.task('serve:prod', function() {
connect.server({
port: "8081",
port: '8081',
root: paths.prod.serverRoot,
fallback: paths.prod.serverFallback,
livereload: true
Expand Down Expand Up @@ -344,7 +370,7 @@ gulp.task('tests:protractor', function() {
* Main tasks
*/
gulp.task('build:dev', function(done) {
runSequence('dev:tslint', 'dev:clean', 'dev:compile:sass', 'dev:compile:typescript', 'dev:copy:vendor-js', 'dev:bundle:angular', done);
runSequence('dev:tslint', 'dev:clean', 'dev:compile:sass', 'dev:copy:vendor-js', 'dev:compile:typescript', 'dev:bundle:angular', done);
});

gulp.task('build:prod', function(done) {
Expand Down
9 changes: 5 additions & 4 deletions package.json
@@ -1,6 +1,6 @@
{
"name": "angular2-seed",
"version": "1.0.6",
"version": "1.0.7",
"description": "Angular 2 TypeScript starter project",
"author": "Matthias Schuetz",
"dependencies": {
Expand All @@ -10,14 +10,15 @@
"@angular/http": "2.0.0-rc.4",
"@angular/platform-browser": "2.0.0-rc.4",
"@angular/platform-browser-dynamic": "2.0.0-rc.4",
"@angular/router": "3.0.0-beta.1",
"systemjs": "0.19.27",
"es6-shim": "^0.35.0",
"@angular/router": "3.0.0-beta.2",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"systemjs": "0.19.27",
"zone.js": "^0.6.12"
},
"devDependencies": {
"event-stream": "^3.3.3",
"gulp": "^3.9.0",
"gulp-clean": "^0.3.2",
"gulp-concat": "^2.6.0",
Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Expand Up @@ -11,6 +11,7 @@
},
"compileOnSave": true,
"exclude": [
"node_modules"
"node_modules",
"app/src/vendor"
]
}
2 changes: 1 addition & 1 deletion tslint.json
Expand Up @@ -9,7 +9,7 @@
],
"max-line-length": [
true,
140
160
],
"member-ordering": [
true,
Expand Down

0 comments on commit 6ce5410

Please sign in to comment.