Browse Source

Webpack dev

pull/297/head
Sebastian 8 years ago
parent
commit
9f37e8daa5
  1. 47
      src/Squidex/app-config/fix-coverage-loader.js
  2. 2
      src/Squidex/app-config/karma.coverage.conf.js
  3. 2
      src/Squidex/app-config/webpack.run.dev.js
  4. 13
      src/Squidex/app-config/webpack.run.prod.js
  5. 41
      src/Squidex/app-config/webpack.test.coverage.js
  6. 2
      src/Squidex/app-config/webpack.test.js
  7. 9
      src/Squidex/app/app.ts
  8. 11
      src/Squidex/app/features/content/pages/content/content-history.component.ts
  9. 10
      src/Squidex/app/shared/components/history.component.ts
  10. 9
      src/Squidex/app/theme/theme.scss
  11. 35
      src/Squidex/package-lock.json
  12. 7
      src/Squidex/package.json
  13. 9
      src/Squidex/tslint.json

47
src/Squidex/app-config/fix-coverage-loader.js

@ -1,47 +0,0 @@
function fixCoverage(contents) {
this.cacheable();
var ignores = [
{ name: 'arguments', line: 'var _a' },
{ name: 'decorate', line: 'var __decorate =', },
{ name: 'metadata', line: 'var __metadata =', },
{ name: 'extends', line: 'var __extends =', },
{ name: 'export', line: 'function __export' }
];
var updates = 0;
var rows = contents.split('\n');
for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {
var row = rows[rowIndex].trim();
for (var ignoreIndex = 0; ignoreIndex < ignores.length; ignoreIndex++) {
var ignore = ignores[ignoreIndex];
if (row.indexOf(ignore.line) >= 0) {
rows.splice(rowIndex, 0, '/* istanbul ignore next: TypeScript ' + ignore.name + ' */');
rowIndex++;
updates++;
break;
}
}
if (row.indexOf('hasOwnProperty') >= 0) {
rows.splice(rowIndex, 0, '/* istanbul ignore else */');
rowIndex++;
updates++;
}
if (updates === ignores.length) {
break;
}
}
if (updates > 0) {
return rows.join('\n');
} else {
return contents;
}
}
module.exports = fixCoverage;

2
src/Squidex/app-config/karma.coverage.conf.js

@ -1,4 +1,4 @@
var webpackConfig = require('./webpack.test.coverage'); var webpackConfig = require('./webpack.test');
module.exports = function (config) { module.exports = function (config) {
var _config = { var _config = {

2
src/Squidex/app-config/webpack.run.dev.js

@ -4,6 +4,8 @@
helpers = require('./helpers'); helpers = require('./helpers');
module.exports = webpackMerge(runConfig, { module.exports = webpackMerge(runConfig, {
mode: 'development',
/** /**
* Developer tool to enhance debugging * Developer tool to enhance debugging
* *

13
src/Squidex/app-config/webpack.run.prod.js

@ -10,6 +10,8 @@ var ENV = process.env.NODE_ENV = process.env.ENV = 'production';
helpers.removeLoaders(runConfig, ['scss', 'ts']); helpers.removeLoaders(runConfig, ['scss', 'ts']);
module.exports = webpackMerge(runConfig, { module.exports = webpackMerge(runConfig, {
mode: 'production',
devtool: 'source-map', devtool: 'source-map',
output: { output: {
@ -95,17 +97,6 @@ module.exports = webpackMerge(runConfig, {
*/ */
new ExtractTextPlugin('[name].css'), new ExtractTextPlugin('[name].css'),
new webpack.optimize.UglifyJsPlugin({
beautify: false,
mangle: {
screw_ie8: true, keep_fnames: true
},
compress: {
screw_ie8: true, warnings: false
},
comments: false
}),
new ngToolsWebpack.AngularCompilerPlugin({ new ngToolsWebpack.AngularCompilerPlugin({
tsConfigPath: './tsconfig.json', tsConfigPath: './tsconfig.json',
entryModule: 'app/app.module#AppModule' entryModule: 'app/app.module#AppModule'

41
src/Squidex/app-config/webpack.test.coverage.js

@ -1,41 +0,0 @@

var webpackMerge = require('webpack-merge'),
path = require('path'),
helpers = require('./helpers'),
testConfig = require('./webpack.test.js');
helpers.removeLoaders(testConfig, ['ts']);
module.exports = webpackMerge(testConfig, {
module: {
/**
* An array of Rules which are matched to requests when modules are created.
*
* See: https://webpack.js.org/configuration/module/#module-rules
*/
rules: [
{
test: /\.ts$/,
use: [{
loader: 'awesome-typescript-loader'
}],
include: [/\.(e2e|spec)\.ts$/],
}, {
test: /\.ts$/,
use: [{
loader: 'istanbul-instrumenter-loader'
}, {
loader: helpers.root('app-config', 'fix-coverage-loader')
}, {
loader: 'awesome-typescript-loader'
}, {
loader: 'angular2-router-loader'
}, {
loader: 'angular2-template-loader'
}],
exclude: [/\.(e2e|spec)\.ts$/]
}
]
}
});

2
src/Squidex/app-config/webpack.test.js

@ -4,6 +4,8 @@ commonConfig = require('./webpack.config.js'),
helpers = require('./helpers'); helpers = require('./helpers');
module.exports = webpackMerge(commonConfig, { module.exports = webpackMerge(commonConfig, {
mode: 'development',
/** /**
* Source map for Karma from the help of karma-sourcemap-loader & karma-webpack * Source map for Karma from the help of karma-sourcemap-loader & karma-webpack
* *

9
src/Squidex/app/app.ts

@ -7,6 +7,15 @@
import './theme/theme.scss'; import './theme/theme.scss';
// icomoon
import './theme/icomoon/style.css';
// Pikaday
import 'pikaday/css/pikaday.css';
// Dragula
import 'dragula/dist/dragula.css';
import { enableProdMode } from '@angular/core'; import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

11
src/Squidex/app/features/content/pages/content/content-history.component.ts

@ -7,8 +7,8 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Observable, timer } from 'rxjs'; import { merge, Observable, timer } from 'rxjs';
import { delay, merge, switchMap } from 'rxjs/operators'; import { delay, switchMap } from 'rxjs/operators';
import { import {
allParams, allParams,
@ -49,9 +49,10 @@ export class ContentHistoryComponent {
} }
public events: Observable<HistoryEventDto[]> = public events: Observable<HistoryEventDto[]> =
timer(0, 10000).pipe( merge(
merge(this.messageBus.of(HistoryChannelUpdated) timer(0, 10000),
.pipe(delay(1000))), this.messageBus.of(HistoryChannelUpdated).pipe(delay(1000))
).pipe(
switchMap(app => this.historyService.getHistory(this.appsState.appName, this.channel))); switchMap(app => this.historyService.getHistory(this.appsState.appName, this.channel)));
constructor( constructor(

10
src/Squidex/app/shared/components/history.component.ts

@ -7,8 +7,8 @@
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router'; import { ActivatedRoute } from '@angular/router';
import { Observable, timer } from 'rxjs'; import { merge, Observable, timer } from 'rxjs';
import { delay, merge, switchMap } from 'rxjs/operators'; import { delay, switchMap } from 'rxjs/operators';
import { import {
allParams, allParams,
@ -28,8 +28,10 @@ export class HistoryComponent {
private readonly channel = this.calculateChannel(); private readonly channel = this.calculateChannel();
public events: Observable<HistoryEventDto[]> = public events: Observable<HistoryEventDto[]> =
timer(0, 10000).pipe( merge(
merge(this.messageBus.of(HistoryChannelUpdated).pipe(delay(1000))), timer(0, 10000),
this.messageBus.of(HistoryChannelUpdated).pipe(delay(1000))
).pipe(
switchMap(app => this.historyService.getHistory(this.appsState.appName, this.channel))); switchMap(app => this.historyService.getHistory(this.appsState.appName, this.channel)));
constructor( constructor(

9
src/Squidex/app/theme/theme.scss

@ -3,18 +3,9 @@
// Bootstrap // Bootstrap
@import '~bootstrap/scss/bootstrap.scss'; @import '~bootstrap/scss/bootstrap.scss';
// Pikaday
@import '~pikaday/css/pikaday.css';
// Dragula
@import '~dragula/dist/dragula.css';
// Bootstrap Overrides // Bootstrap Overrides
@import '_bootstrap.scss'; @import '_bootstrap.scss';
// icomoon
@import './icomoon/style.css';
@import '_common'; @import '_common';
@import '_panels'; @import '_panels';
@import '_forms'; @import '_forms';

35
src/Squidex/package-lock.json

@ -536,9 +536,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "10.3.0", "version": "10.1.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.3.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.1.2.tgz",
"integrity": "sha512-hWzNviaVFIr1TqcRA8ou49JaSHp+Rfabmnqg2kNvusKqLhPU0rIsGPUj5WJJ7ld4Bb7qdgLmIhLfCD1qS08IVA==", "integrity": "sha512-bjk1RIeZBCe/WukrFToIVegOf91Pebr8cXYBwLBIsfiGWVQ+ifwWsT59H3RxrWzWrzd1l/Amk1/ioY5Fq3/bpA==",
"dev": true "dev": true
}, },
"@types/react": { "@types/react": {
@ -556,7 +556,7 @@
"integrity": "sha512-ony2hEYlGXCLWNAWWgbsHR7qVvDbeMRFc5b43+7dhj3n+zXzxz81HV9Yjpc3JD8vLCiwYoSLqFCI6bD0+0zG2Q==", "integrity": "sha512-ony2hEYlGXCLWNAWWgbsHR7qVvDbeMRFc5b43+7dhj3n+zXzxz81HV9Yjpc3JD8vLCiwYoSLqFCI6bD0+0zG2Q==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "10.3.0", "@types/node": "10.1.2",
"@types/react": "16.3.16" "@types/react": "16.3.16"
} }
}, },
@ -12882,6 +12882,27 @@
"tslib": "1.9.2" "tslib": "1.9.2"
} }
}, },
"rxjs-tslint": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/rxjs-tslint/-/rxjs-tslint-0.1.4.tgz",
"integrity": "sha512-7wW9shBod8G9qQXAvfFeIpC7R29HjAbkn9RyeY59N05R8s10OPNJeQhHFmllzqnLycgq7YUJQB6CyC2HBxvWOg==",
"dev": true,
"requires": {
"chalk": "2.4.1",
"optimist": "0.6.1",
"tslint": "5.10.0",
"tsutils": "2.27.1",
"typescript": "2.9.1"
},
"dependencies": {
"typescript": {
"version": "2.9.1",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz",
"integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==",
"dev": true
}
}
},
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@ -14511,9 +14532,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "2.9.1", "version": "2.7.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.1.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz",
"integrity": "sha512-h6pM2f/GDchCFlldnriOhs1QHuwbnmj6/v7499eMHqPeW4V2G0elua2eIc2nu8v2NdHV0Gm+tzX83Hr6nUFjQA==", "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==",
"dev": true "dev": true
}, },
"ua-parser-js": { "ua-parser-js": {

7
src/Squidex/package.json

@ -8,12 +8,12 @@
"test": "karma start", "test": "karma start",
"test:coverage": "karma start karma.coverage.conf.js", "test:coverage": "karma start karma.coverage.conf.js",
"test:clean": "rimraf _test-output", "test:clean": "rimraf _test-output",
"dev": "cpx node_modules/oidc-client/dist/oidc-client.min.js wwwroot/scripts/ && webpack-dev-server --config app-config/webpack.run.dev.js --mode development --inline --port 3000", "dev": "cpx node_modules/oidc-client/dist/oidc-client.min.js wwwroot/scripts/ && webpack-dev-server --config app-config/webpack.run.dev.js --inline --port 3000",
"build": "webpack --config app-config/webpack.run.prod.js --display-error-details --bail --display-optimization-bailout", "build": "webpack --config app-config/webpack.run.prod.js --display-error-details --bail --display-optimization-bailout",
"build:nobail": "webpack --config app-config/webpack.run.prod.js --display-error-details", "build:nobail": "webpack --config app-config/webpack.run.prod.js --display-error-details",
"build:copy": "cpx node_modules/oidc-client/dist/oidc-client.min.js wwwroot/scripts/", "build:copy": "cpx node_modules/oidc-client/dist/oidc-client.min.js wwwroot/scripts/",
"build:clean": "rimraf wwwroot/build", "build:clean": "rimraf wwwroot/build",
"tslint": "tslint app/**/*.ts" "tslint": "tslint -c tslint.json -p tsconfig.json app/**/*.ts"
}, },
"dependencies": { "dependencies": {
"@angular/animations": "6.0.3", "@angular/animations": "6.0.3",
@ -83,6 +83,7 @@
"null-loader": "0.1.1", "null-loader": "0.1.1",
"raw-loader": "0.5.1", "raw-loader": "0.5.1",
"rimraf": "2.6.2", "rimraf": "2.6.2",
"rxjs-tslint": "^0.1.4",
"sass-lint": "1.12.1", "sass-lint": "1.12.1",
"sass-loader": "7.0.1", "sass-loader": "7.0.1",
"style-loader": "0.21.0", "style-loader": "0.21.0",
@ -90,7 +91,7 @@
"tslint": "5.10.0", "tslint": "5.10.0",
"tslint-loader": "3.6.0", "tslint-loader": "3.6.0",
"typemoq": "2.1.0", "typemoq": "2.1.0",
"typescript": "2.9.1", "typescript": "2.7.2",
"underscore": "1.9.1", "underscore": "1.9.1",
"webpack": "4.10.2", "webpack": "4.10.2",
"webpack-cli": "^2.1.5", "webpack-cli": "^2.1.5",

9
src/Squidex/tslint.json

@ -1,6 +1,7 @@
{ {
"rulesDirectory": [ "rulesDirectory": [
"node_modules/codelyzer" "node_modules/codelyzer",
"node_modules/rxjs-tslint"
], ],
"rules": { "rules": {
"angular-whitespace": false, "angular-whitespace": false,
@ -69,7 +70,7 @@
"no-switch-case-fall-through": true, "no-switch-case-fall-through": true,
"no-trailing-whitespace": true, "no-trailing-whitespace": true,
"no-unused-expression": true, "no-unused-expression": true,
"no-use-before-declare": true, "no-use-before-declare": false,
"no-var-keyword": true, "no-var-keyword": true,
"object-literal-sort-keys": false, "object-literal-sort-keys": false,
"one-line": [ "one-line": [
@ -97,6 +98,10 @@
"single" "single"
], ],
"radix": true, "radix": true,
"rxjs-collapse-imports": true,
"rxjs-pipeable-operators-only": true,
"rxjs-no-static-observable-methods": true,
"rxjs-proper-imports": true,
"semicolon": [ "semicolon": [
true, true,
"always" "always"

Loading…
Cancel
Save