Add bootstrap analyzer and optimize build
This commit is contained in:
parent
1c6c7699f5
commit
24a8e782d8
9 changed files with 123 additions and 10 deletions
|
@ -16,7 +16,8 @@
|
||||||
"lint": "standard && tslint --type-check --project ./tsconfig.json -c ./tslint.json 'src/app/**/*.ts'",
|
"lint": "standard && tslint --type-check --project ./tsconfig.json -c ./tslint.json 'src/app/**/*.ts'",
|
||||||
"webpack": "webpack",
|
"webpack": "webpack",
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"postinstall": "npm rebuild node-sass"
|
"postinstall": "npm rebuild node-sass",
|
||||||
|
"webpack-bundle-analyzer": "webpack-bundle-analyzer"
|
||||||
},
|
},
|
||||||
"license": "GPLv3",
|
"license": "GPLv3",
|
||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
"@ngx-loading-bar/http-client": "^1.0.0-rc.1",
|
"@ngx-loading-bar/http-client": "^1.0.0-rc.1",
|
||||||
"@ngx-meta/core": "^4.0.1",
|
"@ngx-meta/core": "^4.0.1",
|
||||||
"@types/core-js": "^0.9.28",
|
"@types/core-js": "^0.9.28",
|
||||||
|
"@types/lodash-es": "^4.17.0",
|
||||||
"@types/markdown-it": "^0.0.4",
|
"@types/markdown-it": "^0.0.4",
|
||||||
"@types/node": "^8.0.33",
|
"@types/node": "^8.0.33",
|
||||||
"@types/video.js": "6.2.0",
|
"@types/video.js": "6.2.0",
|
||||||
|
@ -50,6 +52,7 @@
|
||||||
"extract-text-webpack-plugin": "^3.0.2",
|
"extract-text-webpack-plugin": "^3.0.2",
|
||||||
"file-loader": "^1.1.5",
|
"file-loader": "^1.1.5",
|
||||||
"html-webpack-plugin": "^2.19.0",
|
"html-webpack-plugin": "^2.19.0",
|
||||||
|
"lodash-es": "^4.17.4",
|
||||||
"markdown-it": "^8.4.0",
|
"markdown-it": "^8.4.0",
|
||||||
"ngx-bootstrap": "2.0.0-beta.9",
|
"ngx-bootstrap": "2.0.0-beta.9",
|
||||||
"ngx-chips": "1.6.1",
|
"ngx-chips": "1.6.1",
|
||||||
|
@ -74,6 +77,7 @@
|
||||||
"video.js": "^6.2.0",
|
"video.js": "^6.2.0",
|
||||||
"videojs-dock": "^2.0.2",
|
"videojs-dock": "^2.0.2",
|
||||||
"webpack": "^3.3.0",
|
"webpack": "^3.3.0",
|
||||||
|
"webpack-bundle-analyzer": "^2.9.1",
|
||||||
"webtorrent": "^0.98.0",
|
"webtorrent": "^0.98.0",
|
||||||
"zone.js": "~0.8.5"
|
"zone.js": "~0.8.5"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { NgModule } from '@angular/core'
|
import { NgModule } from '@angular/core'
|
||||||
import { TabsModule } from 'ngx-bootstrap/tabs'
|
import { TabsModule } from 'ngx-bootstrap/tabs'
|
||||||
|
import { DataTableModule } from 'primeng/components/datatable/datatable'
|
||||||
import { SharedModule } from '../shared'
|
import { SharedModule } from '../shared'
|
||||||
import { AdminRoutingModule } from './admin-routing.module'
|
import { AdminRoutingModule } from './admin-routing.module'
|
||||||
import { AdminComponent } from './admin.component'
|
import { AdminComponent } from './admin.component'
|
||||||
|
@ -16,6 +17,7 @@ import { VideoBlacklistComponent, VideoBlacklistListComponent } from './video-bl
|
||||||
imports: [
|
imports: [
|
||||||
AdminRoutingModule,
|
AdminRoutingModule,
|
||||||
TabsModule.forRoot(),
|
TabsModule.forRoot(),
|
||||||
|
DataTableModule,
|
||||||
SharedModule
|
SharedModule
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@ import { ModalModule } from 'ngx-bootstrap/modal'
|
||||||
import { InfiniteScrollModule } from 'ngx-infinite-scroll'
|
import { InfiniteScrollModule } from 'ngx-infinite-scroll'
|
||||||
import { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
|
import { BytesPipe, KeysPipe, NgPipesModule } from 'ngx-pipes'
|
||||||
import { SharedModule as PrimeSharedModule } from 'primeng/components/common/shared'
|
import { SharedModule as PrimeSharedModule } from 'primeng/components/common/shared'
|
||||||
import { DataTableModule } from 'primeng/components/datatable/datatable'
|
|
||||||
|
|
||||||
import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
|
import { AUTH_INTERCEPTOR_PROVIDER } from './auth'
|
||||||
import { DeleteButtonComponent } from './misc/delete-button.component'
|
import { DeleteButtonComponent } from './misc/delete-button.component'
|
||||||
|
@ -39,7 +38,6 @@ import { VideoService } from './video/video.service'
|
||||||
BsDropdownModule.forRoot(),
|
BsDropdownModule.forRoot(),
|
||||||
ModalModule.forRoot(),
|
ModalModule.forRoot(),
|
||||||
|
|
||||||
DataTableModule,
|
|
||||||
PrimeSharedModule,
|
PrimeSharedModule,
|
||||||
InfiniteScrollModule,
|
InfiniteScrollModule,
|
||||||
NgPipesModule
|
NgPipesModule
|
||||||
|
@ -66,7 +64,6 @@ import { VideoService } from './video/video.service'
|
||||||
|
|
||||||
BsDropdownModule,
|
BsDropdownModule,
|
||||||
ModalModule,
|
ModalModule,
|
||||||
DataTableModule,
|
|
||||||
PrimeSharedModule,
|
PrimeSharedModule,
|
||||||
InfiniteScrollModule,
|
InfiniteScrollModule,
|
||||||
BytesPipe,
|
BytesPipe,
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { Component, forwardRef, Input, OnInit } from '@angular/core'
|
import { Component, forwardRef, Input, OnInit } from '@angular/core'
|
||||||
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'
|
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'
|
||||||
import { truncate } from 'lodash'
|
|
||||||
import 'rxjs/add/operator/debounceTime'
|
import 'rxjs/add/operator/debounceTime'
|
||||||
import 'rxjs/add/operator/distinctUntilChanged'
|
import 'rxjs/add/operator/distinctUntilChanged'
|
||||||
import { Subject } from 'rxjs/Subject'
|
import { Subject } from 'rxjs/Subject'
|
||||||
import { MarkdownService } from '../../shared'
|
import { MarkdownService } from '../../shared'
|
||||||
|
import truncate from 'lodash-es/truncate'
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'my-video-description',
|
selector: 'my-video-description',
|
||||||
|
|
56
client/src/sass/include/_bootstrap.scss
Normal file
56
client/src/sass/include/_bootstrap.scss
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
/*!
|
||||||
|
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||||
|
* Copyright 2011-2016 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Core variables and mixins
|
||||||
|
@import "bootstrap/variables";
|
||||||
|
@import "bootstrap/mixins";
|
||||||
|
|
||||||
|
// Reset and dependencies
|
||||||
|
@import "bootstrap/normalize";
|
||||||
|
@import "bootstrap/print";
|
||||||
|
@import "bootstrap/glyphicons";
|
||||||
|
|
||||||
|
// Core CSS
|
||||||
|
@import "bootstrap/scaffolding";
|
||||||
|
@import "bootstrap/type";
|
||||||
|
@import "bootstrap/code";
|
||||||
|
@import "bootstrap/grid";
|
||||||
|
@import "bootstrap/tables";
|
||||||
|
@import "bootstrap/forms";
|
||||||
|
@import "bootstrap/buttons";
|
||||||
|
|
||||||
|
// Components
|
||||||
|
@import "bootstrap/component-animations";
|
||||||
|
@import "bootstrap/dropdowns";
|
||||||
|
@import "bootstrap/button-groups";
|
||||||
|
@import "bootstrap/input-groups";
|
||||||
|
@import "bootstrap/navs";
|
||||||
|
@import "bootstrap/navbar";
|
||||||
|
@import "bootstrap/breadcrumbs";
|
||||||
|
@import "bootstrap/pagination";
|
||||||
|
@import "bootstrap/pager";
|
||||||
|
@import "bootstrap/labels";
|
||||||
|
@import "bootstrap/badges";
|
||||||
|
@import "bootstrap/jumbotron";
|
||||||
|
@import "bootstrap/thumbnails";
|
||||||
|
@import "bootstrap/alerts";
|
||||||
|
@import "bootstrap/progress-bars";
|
||||||
|
@import "bootstrap/media";
|
||||||
|
@import "bootstrap/list-group";
|
||||||
|
@import "bootstrap/panels";
|
||||||
|
@import "bootstrap/responsive-embed";
|
||||||
|
@import "bootstrap/wells";
|
||||||
|
@import "bootstrap/close";
|
||||||
|
|
||||||
|
// Components w/ JavaScript
|
||||||
|
@import "bootstrap/modals";
|
||||||
|
@import "bootstrap/tooltip";
|
||||||
|
@import "bootstrap/popovers";
|
||||||
|
@import "bootstrap/carousel";
|
||||||
|
|
||||||
|
// Utility classes
|
||||||
|
@import "bootstrap/utilities";
|
||||||
|
@import "bootstrap/responsive-utilities";
|
|
@ -217,6 +217,16 @@
|
||||||
version "0.9.43"
|
version "0.9.43"
|
||||||
resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.43.tgz#65d646c5e8c0cd1bdee37065799f9d3d48748253"
|
resolved "https://registry.yarnpkg.com/@types/core-js/-/core-js-0.9.43.tgz#65d646c5e8c0cd1bdee37065799f9d3d48748253"
|
||||||
|
|
||||||
|
"@types/lodash-es@^4.17.0":
|
||||||
|
version "4.17.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.0.tgz#ed9044d62ee36a93e0650b112701986b1c74c766"
|
||||||
|
dependencies:
|
||||||
|
"@types/lodash" "*"
|
||||||
|
|
||||||
|
"@types/lodash@*":
|
||||||
|
version "4.14.91"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.91.tgz#794611b28056d16b5436059c6d800b39d573cd3a"
|
||||||
|
|
||||||
"@types/magnet-uri@*":
|
"@types/magnet-uri@*":
|
||||||
version "5.1.1"
|
version "5.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz#861aaf64c92a3137dd848fefc55cd352a8ea851a"
|
resolved "https://registry.yarnpkg.com/@types/magnet-uri/-/magnet-uri-5.1.1.tgz#861aaf64c92a3137dd848fefc55cd352a8ea851a"
|
||||||
|
@ -295,7 +305,7 @@ acorn@^4.0.3:
|
||||||
version "4.0.13"
|
version "4.0.13"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787"
|
||||||
|
|
||||||
acorn@^5.0.0, acorn@^5.2.1:
|
acorn@^5.0.0, acorn@^5.1.1, acorn@^5.2.1:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"
|
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.2.1.tgz#317ac7821826c22c702d66189ab8359675f135d7"
|
||||||
|
|
||||||
|
@ -1938,6 +1948,10 @@ domutils@1.5.1:
|
||||||
dom-serializer "0"
|
dom-serializer "0"
|
||||||
domelementtype "1"
|
domelementtype "1"
|
||||||
|
|
||||||
|
duplexer@^0.1.1:
|
||||||
|
version "0.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
|
||||||
|
|
||||||
duplexify@^3.1.2, duplexify@^3.4.2:
|
duplexify@^3.1.2, duplexify@^3.4.2:
|
||||||
version "3.5.1"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd"
|
resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd"
|
||||||
|
@ -1957,7 +1971,7 @@ ee-first@1.1.1:
|
||||||
version "1.1.1"
|
version "1.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
||||||
|
|
||||||
ejs@^2.5.7:
|
ejs@^2.5.6, ejs@^2.5.7:
|
||||||
version "2.5.7"
|
version "2.5.7"
|
||||||
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
|
resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a"
|
||||||
|
|
||||||
|
@ -2349,7 +2363,7 @@ exports-loader@^0.6.3:
|
||||||
loader-utils "^1.0.2"
|
loader-utils "^1.0.2"
|
||||||
source-map "0.5.x"
|
source-map "0.5.x"
|
||||||
|
|
||||||
express@^4.16.2:
|
express@^4.15.2, express@^4.16.2:
|
||||||
version "4.16.2"
|
version "4.16.2"
|
||||||
resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
|
resolved "https://registry.yarnpkg.com/express/-/express-4.16.2.tgz#e35c6dfe2d64b7dca0a5cd4f21781be3299e076c"
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -2489,6 +2503,10 @@ filename-regex@^2.0.0:
|
||||||
version "2.0.1"
|
version "2.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
|
resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
|
||||||
|
|
||||||
|
filesize@^3.5.9:
|
||||||
|
version "3.5.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee"
|
||||||
|
|
||||||
filestream@^4.0.0:
|
filestream@^4.0.0:
|
||||||
version "4.1.3"
|
version "4.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz#948fcaade8221f715f5ecaddc54862faaacc9325"
|
resolved "https://registry.yarnpkg.com/filestream/-/filestream-4.1.3.tgz#948fcaade8221f715f5ecaddc54862faaacc9325"
|
||||||
|
@ -2864,6 +2882,12 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
|
||||||
version "4.1.11"
|
version "4.1.11"
|
||||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
|
||||||
|
|
||||||
|
gzip-size@^3.0.0:
|
||||||
|
version "3.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
|
||||||
|
dependencies:
|
||||||
|
duplexer "^0.1.1"
|
||||||
|
|
||||||
handle-thing@^1.2.5:
|
handle-thing@^1.2.5:
|
||||||
version "1.2.5"
|
version "1.2.5"
|
||||||
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
|
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4"
|
||||||
|
@ -3823,6 +3847,10 @@ locate-path@^2.0.0:
|
||||||
p-locate "^2.0.0"
|
p-locate "^2.0.0"
|
||||||
path-exists "^3.0.0"
|
path-exists "^3.0.0"
|
||||||
|
|
||||||
|
lodash-es@^4.17.4:
|
||||||
|
version "4.17.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
|
||||||
|
|
||||||
lodash._baseassign@^3.0.0:
|
lodash._baseassign@^3.0.0:
|
||||||
version "3.2.0"
|
version "3.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
|
||||||
|
@ -4616,6 +4644,10 @@ onetime@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
|
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
|
||||||
|
|
||||||
|
opener@^1.4.3:
|
||||||
|
version "1.4.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/opener/-/opener-1.4.3.tgz#5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8"
|
||||||
|
|
||||||
opn@^5.1.0, opn@~5.1.0:
|
opn@^5.1.0, opn@~5.1.0:
|
||||||
version "5.1.0"
|
version "5.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519"
|
resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519"
|
||||||
|
@ -7159,6 +7191,22 @@ wbuf@^1.1.0, wbuf@^1.7.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
minimalistic-assert "^1.0.0"
|
minimalistic-assert "^1.0.0"
|
||||||
|
|
||||||
|
webpack-bundle-analyzer@^2.9.1:
|
||||||
|
version "2.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-2.9.1.tgz#c2c8e03e8e5768ed288b39ae9e27a8b8d7b9d476"
|
||||||
|
dependencies:
|
||||||
|
acorn "^5.1.1"
|
||||||
|
chalk "^1.1.3"
|
||||||
|
commander "^2.9.0"
|
||||||
|
ejs "^2.5.6"
|
||||||
|
express "^4.15.2"
|
||||||
|
filesize "^3.5.9"
|
||||||
|
gzip-size "^3.0.0"
|
||||||
|
lodash "^4.17.4"
|
||||||
|
mkdirp "^0.5.1"
|
||||||
|
opener "^1.4.3"
|
||||||
|
ws "^3.3.1"
|
||||||
|
|
||||||
webpack-concat-plugin@^1.4.2:
|
webpack-concat-plugin@^1.4.2:
|
||||||
version "1.4.2"
|
version "1.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/webpack-concat-plugin/-/webpack-concat-plugin-1.4.2.tgz#b60bbb626ce5001911809d6e2329fa32f4978a88"
|
resolved "https://registry.yarnpkg.com/webpack-concat-plugin/-/webpack-concat-plugin-1.4.2.tgz#b60bbb626ce5001911809d6e2329fa32f4978a88"
|
||||||
|
|
|
@ -47,7 +47,8 @@
|
||||||
"ts-node": "ts-node",
|
"ts-node": "ts-node",
|
||||||
"tslint": "tslint",
|
"tslint": "tslint",
|
||||||
"travis": "scripty",
|
"travis": "scripty",
|
||||||
"release": "scripty"
|
"release": "scripty",
|
||||||
|
"client-report": "scripty"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"async": "^2.0.0",
|
"async": "^2.0.0",
|
||||||
|
|
|
@ -4,5 +4,5 @@ cd client || exit -1
|
||||||
|
|
||||||
rm -rf ./dist ./compiled
|
rm -rf ./dist ./compiled
|
||||||
|
|
||||||
npm run ng build -- --prod
|
npm run ng build -- --prod --stats-json
|
||||||
NODE_ENV=production npm run webpack -- --config webpack/webpack.video-embed.js
|
NODE_ENV=production npm run webpack -- --config webpack/webpack.video-embed.js
|
||||||
|
|
5
scripts/client-report.sh
Executable file
5
scripts/client-report.sh
Executable file
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cd client || exit -1
|
||||||
|
|
||||||
|
npm run webpack-bundle-analyzer ./dist/stats.json
|
Loading…
Reference in a new issue