运行my gulp build创建用于部署angular 2应用程序的dist包时出现问题

运行my gulp build创建用于部署angular 2应用程序的dist包时出现问题,angular,gulp,Angular,Gulp,我正在尝试为我的Angular 2应用程序做一个吞咽构建。我运行gulp构建,它创建了一个dist文件夹。当我运行此命令时,会出现firebase错误和es6错误 npm启动时出现控制台错误: <!DOCTYPE html> <html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <tit

我正在尝试为我的Angular 2应用程序做一个吞咽构建。我运行gulp构建,它创建了一个dist文件夹。当我运行此命令时,会出现firebase错误和es6错误

npm启动时出现控制台错误:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}

这是我的html索引页:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}
Config.js:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}
NPM运行tsc错误:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}

tsconfig:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}
大口喝:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}
套餐:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}
typings.json:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Title</title>
    <base href="/"></base>

    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=0.5, user-scalable=yes"/>

    <link rel="icon" type="image/png" href="/favicon32.ico" sizes="32x32">
    <link rel="icon" type="image/png" href="/favicon16.ico" sizes="16x16">

    <!-- Css libs -->
    <link rel="stylesheet" type="text/css" href="/css/animate.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/datepicker.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/bootstraptheme.css" /> 
    <link rel="stylesheet" type="text/css" href="/css/styles.css" /> 

    <link href='https://fonts.googleapis.com/css?family=Lato:400,100,100italic,300italic,300,400italic,700italic,900,700,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

    <!-- build:vendor -->
    <script src="node_modules/es6-shim/es6-shim.min.js"></script>
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script>
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <script src="node_modules/rxjs/bundles/Rx.js"></script>
    <script src="node_modules/angular2/bundles/router.js"></script>
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script>
    <script src="node_modules/angular2/bundles/http.dev.js"></script>
    <!-- endbuild -->

    <!-- JS CDN Libs -->    
    <script type="text/javascript" src="https://cdn.jsdelivr.net/lodash/4.11.2/lodash.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>
    <script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="https://www.amcharts.com/lib/3/pie.js"></script>
    <script src="https://www.amcharts.com/lib/3/themes/light.js"></script>

    <script type="text/javascript" src="app/angular2-google-maps.js"></script>
    <script type="text/javascript" src="/firebase.js"></script>
    <!-- JS CDN Libs -->

    <!-- build:app -->
        <script src="config.js"></script>
    <!-- endbuild -->    

  </head>

  <body id="container">

    <app></app>  

  </body>
</html>
import {Component, bind, provide, Injectable} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser'
import {NgIf} from 'angular2/common';
import {Router, Location, ROUTER_BINDINGS, RouterOutlet, RouteConfig, RouterLink, ROUTER_PROVIDERS, APP_BASE_HREF, CanActivate, OnActivate,
      ComponentInstruction} from 'angular2/router';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';

import {AppComponent} from './app.component';

//import {ANGULAR2_GOOGLE_MAPS_PROVIDERS} from 'angular2-google-maps/core';
import {LoggedInRouterOutlet} from './interceptor';

import {AuthService} from './services/authService/authService';
import {SocialService} from './services/socialService/socialService';
import {UserService} from './services/userService/userService';
import {OrganisationService} from './services/organisationService/organisationService';
import {NotificationService} from './services/notificationService/notificationService';
import {EmailService} from './services/emailService/emailService';
import {ApplicationService} from './services/applicationService/applicationService';
import {JobService} from './services/jobService/jobService';
import {MessageService} from './services/messageService/messageService';

import {Organisation} from './models/organisation/organisation';
import {Application} from './models/application/application';
import {Counties} from './models/counties/counties';
import {Environment} from './models/environment/environment';
import {Governingbody} from './models/governingbody/governingbody';
import {Job} from './models/job/job';
import {Message} from './models/Message/Message';
import {Notification} from './models/notification/notification';
import {UserProfile} from './models/profile/profile';
import {User} from './models/user/user';
import {Towns} from './models/towns/towns';
import {Tags} from './models/tags/tags';
import {Status} from './models/status/status';
import {Regions} from './models/regions/regions';

import {HeaderNavigation} from './components/header/header'; 
import {HeaderNavigationLoggedIn} from './components/header/headerNavigationLoggedIn';
import {HeaderNavigationLoggedInCompany} from './components/header/headerNavigationLoggedInCompany';
import {Footer} from './components/footer/footer';
import {SideMenuCompany} from './components/header/sideMenuCompany';
import {SideMenuUser} from './components/header/sideMenuUser';
import {Splash} from './components/splash/splash';
import {Messages} from './components/messages/messages';
import {NewJobs} from './components/newJobs/newJobs';
import {NewJob} from './components/newJob/newJob';
import {Blog} from './components/blog/blog';
import {BlogArticle} from './components/blog/blogArticle';
import {CreateJob} from './components/createJob/createJob';
import {SearchJobs} from './components/searchJobs/searchJobs';
import {Login} from './components/login/login';
import {Applications} from './components/applications/applications';
import {Register} from './components/register/register';
import {ForgotPassword} from './components/forgotpassword/forgotpassword';
import {ChangePassword} from './components/changepassword/changepassword';
import {ChangeEmail} from './components/changeemail/changeemail';
import {SocialRegister} from './components/socialregister/socialregister';
import {Admin} from './components/admin/admin';
import {Contact} from './components/contact/contact';
import {SearchUsers} from './components/searchusers/searchusers';
import {Jobs} from './components/job/jobs';
import {CompanyProfile} from './components/company/company';
import {Home} from './components/home/home';
import {Dashboard} from './components/dashboard/dashboard';
import {Profile} from './components/profile/profile';
import {UserApplications} from './components/userApplications/userApplications';
import {Messenger} from './components/messenger/messenger';
import {Help} from './components/help/help';
import {Achievements} from './components/achievements/achievements';
import {Sitemap} from './components/sitemap/sitemap';

bootstrap(AppComponent, [
    ROUTER_PROVIDERS,
    provide(APP_BASE_HREF, {useValue: ' /'}),
    HTTP_PROVIDERS, 
    AuthService, 
    SocialService, 
    UserService, 
    EmailService, 
    OrganisationService, 
    NotificationService, 
    ApplicationService, 
    JobService, 
    MessageService, 
    Organisation, 
    Application,
    Counties, 
    Environment, 
    Governingbody, 
    Job,
    Message, 
    Notification, 
    UserProfile, 
    User, 
    Towns, 
    Tags, 
    Status, 
    Regions,
    Environment,
    HeaderNavigation, 
    HeaderNavigationLoggedIn,
    HeaderNavigationLoggedInCompany,
    Footer, SideMenuCompany,   
    SideMenuUser,
    Splash,
    Messages,
    NewJobs,
    NewJob, 
    Blog,
    BlogArticle,
    SearchJobs,
    Login,
    Applications,
    Register,
    ForgotPassword,
    ChangePassword,
    ChangeEmail, 
    SocialRegister,
    Admin,
    Contact,
    SearchUsers,
    Jobs, 
    CompanyProfile, 
    Home, 
    Jobs, 
    Dashboard, 
    Profile, 
    UserApplications, 
    Messenger, 
    Help, 
    Sitemap
    ]);
System.config({
  packages: {      
    app: {
      format: 'register',
      defaultExtension: 'js'
    }
  }
});
System.import('app/boot')
      .then(null, console.error.bind(console));
{
  "compilerOptions": {
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "declaration": false,
    "stripInternal": true,
    "module": "system",
    "moduleResolution": "node",
    "noEmitOnError": false,
    "inlineSourceMap": true,
    "inlineSources": true,
    "target": "es5"
  },
  "exclude": [
    "node_modules"
  ]
}
'use strict';

const gulp = require('gulp');
const ts = require('gulp-typescript');
const uglify = require('gulp-uglify');
const concat = require('gulp-concat');
var htmlreplace = require('gulp-html-replace');
var addsrc = require('gulp-add-src');
var cachebust = require('gulp-cache-bust');

var sass = require('gulp-sass');
var inject = require('gulp-inject');
var minifyCss = require('gulp-minify-css');

gulp.task('app-bundle', function () {
  var tsProject = ts.createProject('tsconfig.json', {
      typescript: require('typescript'),
      outFile: 'app.js'
  });

  var tsResult = gulp.src([
    'node_modules/angular2/typings/browser.d.ts',
    'app/**/*.ts'
  ])
    .pipe(ts(tsProject));

  return tsResult.js.pipe(addsrc.append('config-prod.js'))
                    .pipe(concat('app.min.js'))
                    .pipe(uglify())
                    .pipe(gulp.dest('./dist'));

});

gulp.task('vendor-bundle', function() {
    gulp.src([
            'node_modules/es6-shim/es6-shim.min.js',
            'node_modules/systemjs/dist/system-polyfills.js',
            'node_modules/angular2/bundles/angular2-polyfills.js',
            'node_modules/systemjs/dist/system.src.js',
            'node_modules/rxjs/bundles/Rx.js',
      'node_modules/angular2/bundles/router.js',
            'node_modules/angular2/bundles/angular2.dev.js',
            'node_modules/angular2/bundles/http.dev.js'
        ])
        .pipe(concat('vendors.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest('./dist'));
});

gulp.task('getAllImages', function() {
  gulp.src('images')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getCss', function() {
  gulp.src('css/*.css')
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('compileSass', function() {
  gulp.src('sass/styles.scss')
      .pipe(sass().on('error', sass.logError))
      .pipe(minifyCss({compatibility: 'ie8'}))
      .pipe(gulp.dest('./dist/css'))
});

gulp.task('getFavicons', function() {
  gulp.src('favicon*.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getRobot', function() {
  gulp.src('robot.txt')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getFirebase', function() {
  gulp.src('firebase.*')
      .pipe(gulp.dest('./dist'))
});

gulp.task('getSitemap', function() {
  gulp.src('sitemap.xml')
      .pipe(gulp.dest('./dist'))
});

//TODO - get the maps added may need an npm install - check its lib for github url.
//TODO - concat sass and move to css folder.



//This starts the dist
gulp.task('html-replace',[ 'app-bundle', 'vendor-bundle', 'getAllImages', 'getFavicons', 'getRobot', 'getFirebase', 'getSitemap', 'getCss', 'compileSass'], function() {
  gulp.src('index.html')
    .pipe(htmlreplace({
        'vendor': 'vendors.min.js',
        'app': 'app.min.js'
    }))
    .pipe(cachebust({type: 'timestamp'}))
    .pipe(gulp.dest('dist'));
});
{
  "name": "angular2-quickstart",
  "version": "1.0.0",
  "scripts": {
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server"
  },
  "license": "ISC",
  "dependencies": {
    "angular2": "2.0.0-beta.7",
    "es6-promise": "^3.0.2",
    "es6-shim": "^0.33.3",
    "firebase-angular2": "^0.7.2",
    "reflect-metadata": "0.1.2",
    "rxjs": "5.0.0-beta.2",
    "systemjs": "0.19.22",
    "zone.js": "0.5.15"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "gulp": "^3.9.1",
    "gulp-add-src": "^0.2.0",
    "gulp-concat": "^2.6.0",
    "gulp-html-replace": "^1.5.5",
    "gulp-typescript": "^2.12.1",
    "gulp-uglify": "^1.5.3",
    "lite-server": "^2.1.0",
    "typescript": "^1.7.5",
    "typings": "^0.6.8",
    "uglify": "^0.1.5",
    "gulp-cache-bust": "1.0.2"
  }
}
{
  "ambientDependencies": {
    "es6-promise": "github:DefinitelyTyped/DefinitelyTyped/es6-promise/es6-promise.d.ts#71b4d6f6087f49891a01c937d2a86eee6f6c9b3a",
    "es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim/es6-shim.d.ts#7de6c3dd94feaeb21f20054b9f30d5dabc5efabd",
    "firebase": "registry:dt/firebase#2.4.1+20160412125105"
  }
}

根据你提供的信息,很难回答你这样的问题。我在SystemJS中错误地配置了第三方库,导致了这样的错误

你能给我们更多关于这个配置的细节吗

有关更多详细信息,请参阅本文(“加载模块的SystemJS配置错误”一节):


    • 根据您提供的内容,很难回答您这样的问题。我在SystemJS中错误地配置了第三方库,导致了这样的错误

      你能给我们更多关于这个配置的细节吗

      有关更多详细信息,请参阅本文(“加载模块的SystemJS配置错误”一节):

      ng开关默认值中使用管道时,会产生此错误,这是一个已知问题

      每次我在*ngIf中使用管道时,都会出现相同的问题,但条件没有被触发

      提到的解决办法

      
      System.register(“angular2/src/core/change\u detection/pipe\u lifecycle\u reflector”,[],true,功能(需求、导出、模块){
      exports.implementsOnDestroy=函数(管道){return pipe?pipe.constructor.prototype.ngondstroy:false};
      });
      
      另请参见

      ng开关默认值中使用管道时会产生此错误的已知问题

      每次我在*ngIf中使用管道时,都会出现相同的问题,但条件没有被触发

      提到的解决办法

      
      System.register(“angular2/src/core/change\u detection/pipe\u lifecycle\u reflector”,[],true,功能(需求、导出、模块){
      exports.implementsOnDestroy=函数(管道){return pipe?pipe.constructor.prototype.ngondstroy:false};
      });
      

      另请参见
      tsconfig.json
      文件中是否有以下部分

      "exclude": [
              "node_modules",
              "typings/main",
              "typings/main.d.ts"
          ]
      

      如果您不忽略此处的
      打字
      文件夹,您将收到那些
      重复标识符
      消息。

      您的
      tsconfig.json
      文件中是否有以下部分

      "exclude": [
              "node_modules",
              "typings/main",
              "typings/main.d.ts"
          ]
      


      如果你不忽略这里的
      打字
      文件夹,你会得到那些
      重复标识符
      消息。

      我已经在上面添加了我的index.html和boot.ts文件。如果您还需要查看其他内容,请告诉我您的
      config.js
      文件中有什么内容?我已经在上面添加了它。和你的一样。我没有编辑它。我想知道这是否是因为我添加了路由器包:可能是它在供应商列表中的错误位置?在firefox控制台日志中,我得到了一个不同的错误:TypeError:injector未定义错误加载我已经在上面添加了我的index.html和boot.ts文件。如果您还需要查看其他内容,请告诉我您的
      config.js
      文件中有什么内容?我已经在上面添加了它。和你的一样。我没有编辑它。我想知道这是否是因为我添加了路由器包:可能是它在供应商列表中的错误位置?在firefox控制台日志中,我得到了一个不同的错误:TypeError:injector未定义错误加载我得到了上面的错误,找不到名称“Firebase有趣的是,您的问题是关于
      gulp
      ,但您没有添加
      gulpfile.js
      ,并且在
      index.html
      中,您是从
      node\u模块
      导入文件,而不是从
      dist
      导入文件,因为gulp应该将它们放在那里。无论如何,您的错误似乎是由
      tsc
      引起的,请您添加
      tsconfig
      typings.json
      内容好吗?当我执行npm运行tsc时,我在git Bash中遇到了很多键入错误。您可以将
      tsconfig.json
      typings.json
      的内容添加到您的问题包中吗,gulp,typings.json和tsconfig文件addedI得到上述错误,找不到name'firebase有趣的是,您的问题是关于
      gulp
      ,但您没有添加
      gulpfile.js
      ,并且在
      index.html
      中,您是从
      节点模块
      导入文件,而不是从
      dist
      导入文件,这是gulp应该放在那里的。无论如何,您的错误似乎是由
      tsc
      引起的,请您添加
      tsconfig
      typings.json
      内容好吗?当我执行npm运行tsc时,我在git Bash中遇到了很多键入错误。您可以将
      tsconfig.json
      typings.json
      的内容添加到您的问题包中吗,gulp,typings.json和tsconfig文件addedhanks我将简要介绍一下基本上我正在尝试做一个gulp build dist Package有什么文件你想看吗?对不起,不知道“gulp build dist”与你问题的第一个屏幕截图中显示的控制台错误有什么关系。我已经更新了标题。这个问题已经转移到其他错误上。简而言之,我在创建用于部署angular two应用程序的构建文件夹时遇到问题。我在执行此操作时会遇到firebase错误和es6错误谢谢我将对此进行简短的研究基本上我正在尝试执行gulp build dist Package有任何文件要查看吗?抱歉,不知道“gulp build dist”与您问题的第一个屏幕截图中显示的控制台错误有何关系。我已更新了标题。这个问题已经转移到其他错误上。简而言之,我在创建用于部署angular two应用程序的构建文件夹时遇到问题。我得到了firebase错误和es6错误,当我这样做时,我只有“节点_模块”,在那里我仍然得到相同的错误。这是我执行npm时运行tscTry添加
      //<