diff --git a/angular-cli.json b/angular-cli.json index f6ca9a0..857f351 100644 --- a/angular-cli.json +++ b/angular-cli.json @@ -7,19 +7,23 @@ { "root": "src", "outDir": "dist", - "assets": "assets", + "assets": [ + "assets" + ], "index": "index.html", "main": "main.ts", + "polyfills": "polyfills.ts", "test": "test.ts", - "tsconfig": "tsconfig.json", + "tsconfig": "tsconfig.app.json", + "testTsconfig": "tsconfig.spec.json", "prefix": "app", "mobile": false, + "scripts": [], "styles": [ "styles.css" ], - "scripts": [], + "environmentSource": "environments/environment.ts", "environments": { - "source": "environments/environment.ts", "dev": "environments/environment.ts", "prod": "environments/environment.prod.ts" } @@ -32,6 +36,17 @@ "config": "./protractor.conf.js" } }, + "lint": [ + { + "project": "src/tsconfig.app.json" + }, + { + "project": "src/tsconfig.spec.json" + }, + { + "project": "e2e/tsconfig.e2e.json" + } + ], "test": { "karma": { "config": "./karma.conf.js" @@ -39,6 +54,9 @@ }, "defaults": { "styleExt": "css", - "prefixInterfaces": false + "component": { + "inlineTemplate": false, + "spec": true + } } } diff --git a/e2e/tsconfig.json b/e2e/tsconfig.e2e.json similarity index 67% rename from e2e/tsconfig.json rename to e2e/tsconfig.e2e.json index 656bdb1..d723882 100644 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.e2e.json @@ -1,16 +1,19 @@ { - "compileOnSave": false, "compilerOptions": { + "sourceMap": true, "declaration": false, + "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, + "lib": [ + "es2016" + ], + "outDir": "../out-tsc/e2e", "module": "commonjs", - "moduleResolution": "node", - "outDir": "../dist/out-tsc-e2e", - "sourceMap": true, "target": "es5", - "typeRoots": [ - "../node_modules/@types" + "types":[ + "jasmine", + "node" ] } -} +} \ No newline at end of file diff --git a/karma.conf.js b/karma.conf.js index e28922a..bcf90ab 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,33 +1,40 @@ + // Karma configuration file, see link for more information // https://karma-runner.github.io/0.13/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', - frameworks: ['jasmine', 'angular-cli'], + frameworks: ['jasmine', '@angular/cli'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), - require('karma-remap-istanbul'), - require('angular-cli/plugins/karma') + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, files: [ { pattern: './src/test.ts', watched: false } ], - preprocessors: { - './src/test.ts': ['angular-cli'] - }, - remapIstanbulReporter: { - reports: { - html: 'coverage', - lcovonly: './coverage/coverage.lcov' - } - }, + preprocessors: { + './src/test.ts': ['@angular/cli'] + }, + + + + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, angularCli: { - config: './angular-cli.json', environment: 'dev' }, - reporters: ['progress', 'karma-remap-istanbul'], + reporters: config.angularCli && config.angularCli.codeCoverage + ? ['progress', 'coverage-istanbul'] + : ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, diff --git a/package.json b/package.json index 7fd1089..413c043 100644 --- a/package.json +++ b/package.json @@ -12,34 +12,34 @@ }, "private": true, "dependencies": { - "@angular/common": "2.1.2", - "@angular/compiler": "2.1.2", - "@angular/core": "2.1.2", - "@angular/forms": "2.1.2", - "@angular/http": "2.1.2", - "@angular/platform-browser": "2.1.2", - "@angular/platform-browser-dynamic": "2.1.2", - "@angular/router": "3.1.0", - "core-js": "^2.4.1", + "@angular/common": "4.0.1", + "@angular/compiler": "4.0.1", + "@angular/core": "4.0.1", + "@angular/forms": "4.0.1", + "@angular/http": "4.0.1", + "@angular/platform-browser": "4.0.1", + "@angular/platform-browser-dynamic": "4.0.1", + "@angular/router": "4.0.1", "ng2-dragula": "^1.2.1", - "rxjs": "5.0.0-rc.1", - "ts-helpers": "^1.1.2", - "zone.js": "^0.6.25" + "core-js": "2.4.1", + "rxjs": "5.1.0", + "zone.js": "0.8.4" }, "devDependencies": { - "@types/jasmine": "^2.5.35", - "angular-cli": "1.0.0-beta.19-3", - "codelyzer": "~0.0.26", - "jasmine-core": "2.4.1", - "jasmine-spec-reporter": "2.5.0", - "karma": "1.2.0", + "@angular/cli": "1.0.0", + "@angular/compiler-cli": "4.0.1", + "@types/jasmine": "^2.5.38", + "codelyzer": "2.0.0", + "jasmine-core": "2.5.2", + "jasmine-spec-reporter": "3.2.0", + "karma": "1.4.1", "karma-chrome-launcher": "^2.0.0", "karma-cli": "^1.0.1", - "karma-jasmine": "^1.0.2", - "karma-remap-istanbul": "^0.2.1", - "protractor": "4.0.5", - "ts-node": "1.2.1", - "tslint": "3.13.0", - "typescript": "2.0.6" + "karma-coverage-istanbul-reporter": "^0.2.0", + "karma-jasmine": "1.1.0", + "protractor": "5.1.0", + "ts-node": "2.0.0", + "tslint": "4.5.0", + "typescript": "~2.2.2" } } diff --git a/protractor.conf.js b/protractor.conf.js index 169743b..a83f587 100644 --- a/protractor.conf.js +++ b/protractor.conf.js @@ -2,7 +2,7 @@ // https://github.com/angular/protractor/blob/master/docs/referenceConf.js /*global jasmine */ -var SpecReporter = require('jasmine-spec-reporter'); +const { SpecReporter } = require('jasmine-spec-reporter'); exports.config = { allScriptsTimeout: 11000, @@ -20,13 +20,12 @@ exports.config = { defaultTimeoutInterval: 30000, print: function() {} }, - useAllAngular2AppRoots: true, beforeLaunch: function() { require('ts-node').register({ - project: 'e2e' + project: 'e2e/tsconfig.e2e.json' }); }, onPrepare: function() { - jasmine.getEnv().addReporter(new SpecReporter()); + jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); } }; diff --git a/src/main.ts b/src/main.ts index 5c3c520..20421b6 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,12 +1,11 @@ -import './polyfills.ts'; - -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { enableProdMode } from '@angular/core'; -import { environment } from './environments/environment'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +//import { environment } from './environments/environment'; + import { AppModule } from './app/'; -if (environment.production) { - enableProdMode(); -} +/*if (environment.production) { + enableProdMode(); +}*/ platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/src/test.ts b/src/test.ts index 7727c8e..6430673 100644 --- a/src/test.ts +++ b/src/test.ts @@ -1,5 +1,3 @@ -import './polyfills.ts'; - import 'zone.js/dist/long-stack-trace-zone'; import 'zone.js/dist/proxy.js'; import 'zone.js/dist/sync-test'; diff --git a/src/tsconfig.json b/src/tsconfig.app.json similarity index 50% rename from src/tsconfig.json rename to src/tsconfig.app.json index 9b4c84c..b999974 100644 --- a/src/tsconfig.json +++ b/src/tsconfig.app.json @@ -1,17 +1,22 @@ { "compilerOptions": { + "sourceMap": true, "declaration": false, + "moduleResolution": "node", "emitDecoratorMetadata": true, "experimentalDecorators": true, - "lib": ["es6", "dom"], - "mapRoot": "./", - "module": "es6", - "moduleResolution": "node", - "outDir": "../dist/out-tsc", - "sourceMap": true, "target": "es5", - "typeRoots": [ - "../node_modules/@types" - ] - } -} + "lib": [ + "es2016", + "dom" + ], + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} \ No newline at end of file diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json new file mode 100644 index 0000000..b999974 --- /dev/null +++ b/src/tsconfig.spec.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "lib": [ + "es2016", + "dom" + ], + "outDir": "../out-tsc/app", + "module": "es2015", + "baseUrl": "", + "types": [] + }, + "exclude": [ + "test.ts", + "**/*.spec.ts" + ] +} \ No newline at end of file diff --git a/tslint.json b/tslint.json index 5fdd448..be6fc7c 100644 --- a/tslint.json +++ b/tslint.json @@ -43,7 +43,7 @@ "no-duplicate-variable": true, "no-empty": false, "no-eval": true, - "no-inferrable-types": true, + "no-inferrable-types": [true, "ignore-params"] "no-shadowed-variable": true, "no-string-literal": false, "no-switch-case-fall-through": true, @@ -107,6 +107,15 @@ "use-life-cycle-interface": true, "use-pipe-transform-interface": true, "component-class-suffix": true, - "directive-class-suffix": true + "directive-class-suffix": true, + "callable-types": true, + "import-blacklist": [true, "rxjs"], + "import-spacing": true, + "interface-over-type-literal": true, + "no-empty-interface": true, + "no-string-throw": true, + "prefer-const": true, + "typeof-compare": true, + "unified-signatures": true, } }