From 0b246b8211d3916ad09ca42da6f53ea9c46c6a5f Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Wed, 3 May 2017 13:01:00 +0200 Subject: [PATCH] Speed up build (#1852) * single build webpack * fix demo shell test --- .gitignore | 1 + .travis.yml | 63 +--- appveyor.yml | 42 +-- demo-shell-ng2/app/polyfills.ts | 13 +- demo-shell-ng2/app/vendor.ts | 25 +- demo-shell-ng2/config/helpers.js | 3 + demo-shell-ng2/config/karma.conf.js | 84 +++-- demo-shell-ng2/config/webpack.common.js | 252 ++++++-------- demo-shell-ng2/config/webpack.dev.js | 59 +--- demo-shell-ng2/config/webpack.prod.js | 135 +++----- demo-shell-ng2/config/webpack.test.js | 107 +++--- demo-shell-ng2/index.html | 12 - demo-shell-ng2/package.json | 124 ++++--- demo-shell-ng2/tsconfig.json | 33 +- demo-shell-ng2/tslint.json | 5 +- .../config/assets/license_header.txt | 14 + .../assets}/tslint.json | 3 - .../custom-loaders/file-loader-multi.js | 70 ++++ ng2-components/config/helpers.js | 10 + ng2-components/config/karma.conf.js | 114 +++++++ ng2-components/config/webpack.build.js | 49 +++ ng2-components/config/webpack.common.js | 122 +++++++ ng2-components/config/webpack.test.js | 85 +++++ .../ng2-activiti-analytics/README.md | 1 - .../ng2-activiti-analytics/demo/package.json | 28 +- .../demo/systemjs.config.js | 6 +- .../ng2-activiti-analytics/demo/tslint.json | 6 +- .../ng2-activiti-analytics/gulpfile.ts | 311 ------------------ .../ng2-activiti-analytics/karma-test-shim.js | 129 +------- .../ng2-activiti-analytics/karma.conf.js | 136 -------- .../ng2-activiti-analytics/package.json | 89 ++--- .../src/assets/analyticsComponent.mock.ts | 4 +- .../analyticsParamsReportComponent.mock.ts | 28 +- .../analytics-generator.component.ts | 2 - ...nalytics-report-heat-map.component.spec.ts | 2 +- .../analytics-report-heat-map.component.ts | 1 - .../analytics-report-list.component.ts | 2 - ...lytics-report-parameters.component.spec.ts | 42 ++- .../analytics-report-parameters.component.ts | 6 +- .../src/components/analytics.component.ts | 1 - .../widgets/checkbox/checkbox.widget.ts | 1 - .../widgets/date-range/date-range.widget.ts | 1 - .../widgets/dropdown/dropdown.widget.ts | 1 - .../widgets/duration/duration.widget.ts | 1 - .../widgets/number/number.widget.ts | 1 - .../src/services/analytics.service.ts | 28 +- .../ng2-activiti-analytics/tsconfig.json | 8 +- .../ng2-activiti-analytics/tslint.json | 121 ------- .../ng2-activiti-analytics/webpack.build.js | 17 + .../ng2-activiti-diagrams/README.md | 1 - .../ng2-activiti-diagrams/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-activiti-diagrams/demo/tslint.json | 6 +- .../ng2-activiti-diagrams/gulpfile.ts | 310 ----------------- .../ng2-activiti-diagrams/karma-test-shim.js | 125 +------ .../ng2-activiti-diagrams/karma.conf.js | 131 -------- .../ng2-activiti-diagrams/package.json | 89 ++--- ...diagram-alfresco-publish-task.component.ts | 1 - .../diagram-box-publish-task.component.ts | 1 - .../diagram-business-rule-task.component.ts | 1 - .../diagram-camel-task.component.ts | 1 - ...iagram-container-service-task.component.ts | 1 - ...ram-google-drive-publish-task.component.ts | 1 - .../diagram-manual-task.component.ts | 1 - .../activities/diagram-mule-task.component.ts | 1 - .../diagram-receive-task.component.ts | 1 - .../diagram-rest-call-task.component.ts | 1 - .../diagram-script-task.component.ts | 1 - .../activities/diagram-send-task.component.ts | 1 - .../diagram-service-task.component.ts | 1 - .../activities/diagram-task.component.ts | 1 - .../activities/diagram-user-task.component.ts | 1 - .../diagram-boundary-event.component.ts | 1 - .../diagram-throw-event.component.ts | 1 - .../diagram-sequence-flow.component.ts | 1 - .../src/components/diagram.component.ts | 2 - .../events/diagram-end-event.component.ts | 1 - .../events/diagram-event.component.ts | 1 - .../events/diagram-start-event.component.ts | 1 - .../diagram-event-gateway.component.ts | 1 - .../diagram-exclusive-gateway.component.ts | 1 - .../gateways/diagram-gateway.component.ts | 1 - .../diagram-inclusive-gateway.component.ts | 1 - .../diagram-parallel-gateway.component.ts | 1 - .../diagram-container-icon-event.component.ts | 1 - ...am-icon-alfresco-publish-task.component.ts | 1 - ...diagram-icon-box-publish-task.component.ts | 1 - ...agram-icon-business-rule-task.component.ts | 1 - .../diagram-icon-camel-task.component.ts | 1 - .../icons/diagram-icon-error.component.ts | 1 - ...con-google-drive-publish-task.component.ts | 1 - .../diagram-icon-manual-task.component.ts | 1 - .../icons/diagram-icon-message.component.ts | 1 - .../icons/diagram-icon-mule-task.component.ts | 1 - .../diagram-icon-receive-task.component.ts | 1 - .../diagram-icon-rest-call-task.component.ts | 1 - .../diagram-icon-script-task.component.ts | 1 - .../icons/diagram-icon-send-task.component.ts | 1 - .../diagram-icon-service-task.component.ts | 1 - .../icons/diagram-icon-signal.component.ts | 1 - .../icons/diagram-icon-timer.component.ts | 1 - .../icons/diagram-icon-user-task.component.ts | 1 - ...m-intermediate-catching-event.component.ts | 1 - .../diagram-event-subprocess.component.ts | 1 - .../diagram-subprocess.component.ts | 1 - .../swimlanes/diagram-lane.component.ts | 1 - .../swimlanes/diagram-lanes.component.ts | 1 - .../swimlanes/diagram-pool.component.ts | 1 - .../swimlanes/diagram-pools.component.ts | 1 - .../tooltip/diagram-tooltip.component.ts | 1 - .../ng2-activiti-diagrams/tsconfig.json | 8 +- .../ng2-activiti-diagrams/tslint.json | 121 ------- .../ng2-activiti-diagrams/webpack.build.js | 17 + ng2-components/ng2-activiti-form/README.md | 1 - .../ng2-activiti-form/demo/package.json | 28 +- .../ng2-activiti-form/demo/systemjs.config.js | 4 +- .../ng2-activiti-form/demo/tslint.json | 6 +- ng2-components/ng2-activiti-form/gulpfile.ts | 310 ----------------- .../ng2-activiti-form/karma-test-shim.js | 126 +------ .../ng2-activiti-form/karma.conf.js | 134 -------- ng2-components/ng2-activiti-form/package.json | 82 ++--- .../components/activiti-content.component.ts | 21 +- .../src/components/activiti-form.component.ts | 8 +- .../activiti-start-form.component.ts | 1 - .../widgets/amount/amount.widget.ts | 1 - .../widgets/attach/attach.widget.spec.ts | 41 +-- .../widgets/attach/attach.widget.ts | 8 +- .../widgets/checkbox/checkbox.widget.ts | 1 - .../widgets/container/container.widget.ts | 1 - .../components/widgets/date/date.widget.ts | 1 - .../display-text/display-text.widget.ts | 1 - .../display-value.widget.spec.ts | 14 +- .../display-value/display-value.widget.ts | 17 +- .../widgets/dropdown/dropdown.widget.ts | 1 - .../dynamic-table/dynamic-table.widget.ts | 1 - .../editors/boolean/boolean.editor.ts | 1 - .../dynamic-table/editors/date/date.editor.ts | 1 - .../editors/dropdown/dropdown.editor.ts | 1 - .../dynamic-table/editors/row.editor.ts | 1 - .../dynamic-table/editors/text/text.editor.ts | 1 - .../functional-group.widget.ts | 1 - .../widgets/hyperlink/hyperlink.widget.ts | 1 - .../multiline-text/multiline-text.widget.ts | 1 - .../widgets/number/number.widget.ts | 1 - .../widgets/people/people.widget.ts | 1 - .../radio-buttons/radio-buttons.widget.ts | 1 - .../components/widgets/tabs/tabs.widget.ts | 1 - .../components/widgets/text/text.widget.ts | 1 - .../widgets/typeahead/typeahead.widget.ts | 1 - .../widgets/upload/upload.widget.ts | 4 +- .../assets/widget-visibility.service.mock.ts | 8 +- .../src/services/form.service.ts | 24 +- .../ng2-activiti-form/tsconfig.json | 8 +- .../ng2-activiti-form/webpack.build.js | 17 + .../ng2-activiti-processlist/README.md | 1 - .../demo/package.json | 28 +- .../demo/systemjs.config.js | 10 +- .../ng2-activiti-processlist/demo/tslint.json | 8 +- .../ng2-activiti-processlist/gulpfile.ts | 307 ----------------- .../karma-test-shim.js | 130 +------- .../ng2-activiti-processlist/karma.conf.js | 138 -------- .../ng2-activiti-processlist/package.json | 82 ++--- .../activiti-process-instances-list.mock.ts | 4 +- .../src/assets/activiti-process.model.mock.ts | 4 +- .../assets/activiti-process.service.mock.ts | 16 +- .../activiti-start-process.component.mock.ts | 8 +- .../src/assets/task-details.mock.ts | 8 +- .../components/activiti-filters.component.ts | 4 - .../activiti-process-comments.component.ts | 1 - ...viti-process-instance-details.component.ts | 6 +- ...iviti-process-instance-header.component.ts | 1 - ...tiviti-process-instance-tasks.component.ts | 10 +- ...ti-process-instance-variables.component.ts | 1 - .../activiti-processlist.component.ts | 1 - .../activiti-start-process.component.ts | 1 - .../src/services/activiti-process.service.ts | 2 +- .../ng2-activiti-processlist/tsconfig.json | 8 +- .../ng2-activiti-processlist/tslint.json | 121 ------- .../ng2-activiti-processlist/webpack.build.js | 17 + .../ng2-activiti-tasklist/README.md | 1 - .../ng2-activiti-tasklist/demo/package.json | 28 +- .../demo/systemjs.config.js | 8 +- .../ng2-activiti-tasklist/demo/tslint.json | 8 +- .../ng2-activiti-tasklist/gulpfile.ts | 308 ----------------- .../ng2-activiti-tasklist/karma-test-shim.js | 128 +------ .../ng2-activiti-tasklist/karma.conf.js | 134 -------- .../ng2-activiti-tasklist/package.json | 87 ++--- .../src/assets/activiti-apps.mock.ts | 6 +- .../src/assets/task-details.component.mock.ts | 2 +- .../src/assets/task-details.mock.ts | 8 +- .../src/assets/tasklist-service.mock.ts | 34 +- .../src/components/activiti-apps.component.ts | 1 - .../activiti-checklist.component.ts | 16 +- .../components/activiti-comments.component.ts | 1 - .../components/activiti-filters.component.ts | 5 - .../activiti-people-search.component.ts | 5 +- .../components/activiti-people.component.ts | 7 +- .../activiti-start-task.component.ts | 11 +- .../activiti-task-details.component.ts | 6 +- .../activiti-task-header.component.ts | 1 - .../components/activiti-tasklist.component.ts | 3 - .../ng2-activiti-tasklist/tsconfig.json | 8 +- .../ng2-activiti-tasklist/tslint.json | 121 ------- .../ng2-activiti-tasklist/webpack.build.js | 17 + ng2-components/ng2-alfresco-core/README.md | 1 - ng2-components/ng2-alfresco-core/gulpfile.ts | 308 ----------------- .../ng2-alfresco-core/karma-test-shim.js | 120 +------ .../ng2-alfresco-core/karma.conf.js | 123 ------- ng2-components/ng2-alfresco-core/package.json | 91 ++--- .../src/assets/renditionsService.mock.ts | 6 +- .../collapsable/accordion-group.component.ts | 1 - .../ng2-alfresco-core/tsconfig.json | 8 +- ng2-components/ng2-alfresco-core/tslint.json | 121 ------- .../ng2-alfresco-core/webpack.build.js | 17 + .../ng2-alfresco-datatable/README.md | 1 - .../ng2-alfresco-datatable/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-alfresco-datatable/demo/tslint.json | 8 +- .../ng2-alfresco-datatable/gulpfile.ts | 307 ----------------- .../ng2-alfresco-datatable/karma-test-shim.js | 122 +------ .../ng2-alfresco-datatable/karma.conf.js | 127 ------- .../ng2-alfresco-datatable/package.json | 87 ++--- .../datatable/datatable.component.spec.ts | 2 +- .../datatable/datatable.component.ts | 1 - .../pagination/pagination.component.ts | 1 - .../ng2-alfresco-datatable/tsconfig.json | 8 +- .../ng2-alfresco-datatable/tslint.json | 121 ------- .../ng2-alfresco-datatable/webpack.build.js | 17 + .../ng2-alfresco-documentlist/README.md | 1 - .../demo/package.json | 28 +- .../demo/systemjs.config.js | 10 +- .../demo/tslint.json | 6 +- .../ng2-alfresco-documentlist/gulpfile.ts | 307 ----------------- .../karma-test-shim.js | 124 +------ .../ng2-alfresco-documentlist/karma.conf.js | 132 -------- .../ng2-alfresco-documentlist/package.json | 87 ++--- .../src/assets/document-list.service.mock.ts | 2 +- .../breadcrumb/breadcrumb.component.ts | 1 - .../src/components/document-list.component.ts | 11 +- .../document-menu-action.component.ts | 3 - .../src/data/share-datatable-adapter.spec.ts | 78 +++-- .../src/data/share-datatable-adapter.ts | 3 +- .../ng2-alfresco-documentlist/tsconfig.json | 8 +- .../ng2-alfresco-documentlist/tslint.json | 121 ------- .../webpack.build.js | 17 + ng2-components/ng2-alfresco-login/README.md | 1 - .../ng2-alfresco-login/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-alfresco-login/demo/tslint.json | 6 +- ng2-components/ng2-alfresco-login/gulpfile.ts | 307 ----------------- .../ng2-alfresco-login/karma-test-shim.js | 122 +------ .../ng2-alfresco-login/karma.conf.js | 131 -------- .../ng2-alfresco-login/package.json | 86 ++--- .../components/alfresco-login.component.ts | 8 +- .../ng2-alfresco-login/tsconfig.json | 8 +- ng2-components/ng2-alfresco-login/tslint.json | 121 ------- .../ng2-alfresco-login/webpack.build.js | 17 + ng2-components/ng2-alfresco-search/README.md | 1 - .../ng2-alfresco-search/demo/package.json | 28 +- .../demo/systemjs.config.js | 8 +- .../ng2-alfresco-search/demo/tslint.json | 8 +- .../ng2-alfresco-search/gulpfile.ts | 307 ----------------- .../ng2-alfresco-search/karma-test-shim.js | 126 +------ .../ng2-alfresco-search/karma.conf.js | 136 -------- .../ng2-alfresco-search/package.json | 85 ++--- .../assets/alfresco-search.component.mock.ts | 10 +- .../assets/alfresco-search.service.mock.ts | 6 +- .../alfresco-search-autocomplete.component.ts | 7 +- .../alfresco-search-control.component.ts | 1 - .../components/alfresco-search.component.ts | 5 +- .../ng2-alfresco-search/tsconfig.json | 8 +- .../ng2-alfresco-search/tslint.json | 121 ------- .../ng2-alfresco-search/webpack.build.js | 17 + .../ng2-alfresco-social/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-alfresco-social/gulpfile.ts | 307 ----------------- .../ng2-alfresco-social/karma-test-shim.js | 122 +------ .../ng2-alfresco-social/karma.conf.js | 127 ------- .../ng2-alfresco-social/package.json | 28 +- .../ng2-alfresco-social/tsconfig.json | 8 +- .../ng2-alfresco-social/tslint.json | 121 ------- .../ng2-alfresco-social/webpack.build.js | 17 + ng2-components/ng2-alfresco-tag/README.md | 1 - .../ng2-alfresco-tag/demo/package.json | 28 +- .../ng2-alfresco-tag/demo/systemjs.config.js | 4 +- .../ng2-alfresco-tag/demo/tslint.json | 6 +- ng2-components/ng2-alfresco-tag/gulpfile.ts | 307 ----------------- .../ng2-alfresco-tag/karma-test-shim.js | 122 +------ ng2-components/ng2-alfresco-tag/karma.conf.js | 127 ------- ng2-components/ng2-alfresco-tag/package.json | 84 ++--- .../src/components/tag-actions.component.ts | 1 - .../src/components/tag-list.component.ts | 1 - .../src/components/tag-node-list.component.ts | 1 - ng2-components/ng2-alfresco-tag/tsconfig.json | 8 +- ng2-components/ng2-alfresco-tag/tslint.json | 121 ------- .../ng2-alfresco-tag/webpack.build.js | 17 + ng2-components/ng2-alfresco-upload/README.md | 1 - .../ng2-alfresco-upload/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-alfresco-upload/demo/tslint.json | 6 +- .../ng2-alfresco-upload/gulpfile.ts | 307 ----------------- .../ng2-alfresco-upload/karma-test-shim.js | 122 +------ .../ng2-alfresco-upload/karma.conf.js | 128 ------- .../ng2-alfresco-upload/package.json | 88 ++--- .../file-uploading-dialog.component.ts | 1 - .../file-uploading-list.component.ts | 1 - .../src/components/upload-button.component.ts | 1 - .../components/upload-drag-area.component.ts | 1 - .../ng2-alfresco-upload/tsconfig.json | 8 +- .../ng2-alfresco-upload/tslint.json | 121 ------- .../ng2-alfresco-upload/webpack.build.js | 17 + .../ng2-alfresco-userinfo/README.md | 1 - .../ng2-alfresco-userinfo/demo/package.json | 28 +- .../demo/systemjs.config.js | 6 +- .../ng2-alfresco-userinfo/demo/tslint.json | 2 +- .../ng2-alfresco-userinfo/gulpfile.ts | 307 ----------------- .../ng2-alfresco-userinfo/karma-test-shim.js | 122 +------ .../ng2-alfresco-userinfo/karma.conf.js | 135 -------- .../ng2-alfresco-userinfo/package.json | 86 ++--- .../src/assets/fake-bpm-user.service.mock.ts | 6 +- .../src/components/user-info.component.ts | 11 +- .../ng2-alfresco-userinfo/tsconfig.json | 8 +- .../ng2-alfresco-userinfo/tslint.json | 121 ------- .../ng2-alfresco-userinfo/webpack.build.js | 17 + ng2-components/ng2-alfresco-viewer/README.md | 1 - .../ng2-alfresco-viewer/demo/package.json | 28 +- .../demo/systemjs.config.js | 4 +- .../ng2-alfresco-viewer/demo/tslint.json | 11 +- .../ng2-alfresco-viewer/gulpfile.ts | 307 ----------------- .../ng2-alfresco-viewer/karma-test-shim.js | 122 +------ .../ng2-alfresco-viewer/karma.conf.js | 134 -------- .../ng2-alfresco-viewer/package.json | 88 ++--- .../src/components/imgViewer.component.ts | 1 - .../src/components/mediaPlayer.component.ts | 1 - .../notSupportedFormat.component.ts | 1 - .../components/pdfViewer.component.spec.ts | 8 +- .../src/components/pdfViewer.component.ts | 1 - .../components/pdfViewerHost.component.css | 1 - .../src/components/viewer.component.ts | 7 +- .../ng2-alfresco-viewer/tsconfig.json | 8 +- .../ng2-alfresco-viewer/tslint.json | 121 ------- .../ng2-alfresco-viewer/webpack.build.js | 17 + .../ng2-alfresco-webscript/README.md | 1 - .../ng2-alfresco-webscript/demo/package.json | 28 +- .../demo/systemjs.config.js | 8 +- .../ng2-alfresco-webscript/demo/tslint.json | 8 +- .../ng2-alfresco-webscript/gulpfile.ts | 307 ----------------- .../ng2-alfresco-webscript/karma-test-shim.js | 124 +------ .../ng2-alfresco-webscript/karma.conf.js | 132 -------- .../ng2-alfresco-webscript/package.json | 90 ++--- .../ng2-alfresco-webscript/tsconfig.json | 8 +- .../ng2-alfresco-webscript/tslint.json | 121 ------- .../ng2-alfresco-webscript/webpack.build.js | 17 + ng2-components/package-base.json | 83 +++++ ng2-components/package.json | 178 ++++++++++ ng2-components/update.sh | 39 --- scripts/README.md | 13 - scripts/npm-build-all.sh | 56 +--- scripts/npm-clean.sh | 6 + scripts/npm-link-all-components-demo.sh | 33 -- scripts/npm-link-demo-shell.sh | 56 ---- scripts/start.sh | 17 - 362 files changed, 2684 insertions(+), 13104 deletions(-) create mode 100644 ng2-components/config/assets/license_header.txt rename ng2-components/{ng2-activiti-form => config/assets}/tslint.json (96%) create mode 100644 ng2-components/config/custom-loaders/file-loader-multi.js create mode 100644 ng2-components/config/helpers.js create mode 100644 ng2-components/config/karma.conf.js create mode 100644 ng2-components/config/webpack.build.js create mode 100644 ng2-components/config/webpack.common.js create mode 100644 ng2-components/config/webpack.test.js delete mode 100755 ng2-components/ng2-activiti-analytics/gulpfile.ts delete mode 100644 ng2-components/ng2-activiti-analytics/karma.conf.js delete mode 100644 ng2-components/ng2-activiti-analytics/tslint.json create mode 100644 ng2-components/ng2-activiti-analytics/webpack.build.js delete mode 100755 ng2-components/ng2-activiti-diagrams/gulpfile.ts delete mode 100644 ng2-components/ng2-activiti-diagrams/karma.conf.js delete mode 100644 ng2-components/ng2-activiti-diagrams/tslint.json create mode 100644 ng2-components/ng2-activiti-diagrams/webpack.build.js delete mode 100755 ng2-components/ng2-activiti-form/gulpfile.ts delete mode 100644 ng2-components/ng2-activiti-form/karma.conf.js create mode 100644 ng2-components/ng2-activiti-form/webpack.build.js delete mode 100755 ng2-components/ng2-activiti-processlist/gulpfile.ts delete mode 100644 ng2-components/ng2-activiti-processlist/karma.conf.js delete mode 100644 ng2-components/ng2-activiti-processlist/tslint.json create mode 100644 ng2-components/ng2-activiti-processlist/webpack.build.js delete mode 100755 ng2-components/ng2-activiti-tasklist/gulpfile.ts delete mode 100644 ng2-components/ng2-activiti-tasklist/karma.conf.js delete mode 100644 ng2-components/ng2-activiti-tasklist/tslint.json create mode 100644 ng2-components/ng2-activiti-tasklist/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-core/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-core/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-core/tslint.json create mode 100644 ng2-components/ng2-alfresco-core/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-datatable/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-datatable/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-datatable/tslint.json create mode 100644 ng2-components/ng2-alfresco-datatable/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-documentlist/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-documentlist/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-documentlist/tslint.json create mode 100644 ng2-components/ng2-alfresco-documentlist/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-login/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-login/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-login/tslint.json create mode 100644 ng2-components/ng2-alfresco-login/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-search/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-search/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-search/tslint.json create mode 100644 ng2-components/ng2-alfresco-search/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-social/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-social/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-social/tslint.json create mode 100644 ng2-components/ng2-alfresco-social/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-tag/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-tag/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-tag/tslint.json create mode 100644 ng2-components/ng2-alfresco-tag/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-upload/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-upload/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-upload/tslint.json create mode 100644 ng2-components/ng2-alfresco-upload/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-userinfo/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-userinfo/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-userinfo/tslint.json create mode 100644 ng2-components/ng2-alfresco-userinfo/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-viewer/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-viewer/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-viewer/tslint.json create mode 100644 ng2-components/ng2-alfresco-viewer/webpack.build.js delete mode 100755 ng2-components/ng2-alfresco-webscript/gulpfile.ts delete mode 100644 ng2-components/ng2-alfresco-webscript/karma.conf.js delete mode 100644 ng2-components/ng2-alfresco-webscript/tslint.json create mode 100644 ng2-components/ng2-alfresco-webscript/webpack.build.js create mode 100644 ng2-components/package-base.json create mode 100644 ng2-components/package.json delete mode 100755 ng2-components/update.sh delete mode 100755 scripts/npm-link-all-components-demo.sh delete mode 100755 scripts/npm-link-demo-shell.sh diff --git a/.gitignore b/.gitignore index 3185b6b26f..96a34ad337 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ ng2-components/ng2-alfresco-userinfo-old/src/services/bpm-user.service.spec.ts ng2-components/ng2-alfresco-userinfo-old/src/services/ecm-user.service.spec.ts src/environments/ /ng2-components/ng2-example-webpack/ +/ng2-components/config/coverage/ diff --git a/.travis.yml b/.travis.yml index d1a00422a2..69af6b64e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,48 +10,17 @@ before_install: env: matrix: - - MODULE=ng2-alfresco-core - - MODULE=ng2-alfresco-datatable - - MODULE=ng2-alfresco-documentlist - - MODULE=ng2-alfresco-login - - MODULE=ng2-alfresco-search - - MODULE=ng2-alfresco-upload - - MODULE=ng2-alfresco-viewer - - MODULE=ng2-alfresco-webscript - - MODULE=ng2-alfresco-tag - - MODULE=ng2-activiti-form - - MODULE=ng2-activiti-tasklist - - MODULE=ng2-activiti-processlist - - MODULE=ng2-activiti-diagrams - - MODULE=ng2-activiti-analytics - - MODULE=ng2-alfresco-userinfo - - MODULE=ng2-alfresco-social + - MODULE=ng2-components + - MODULE=ng2-demo-shell -before_script: - - if ([ "$MODULE" != "ng2-alfresco-core" ]); then - (cd ng2-components/ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); +script: + - if ([ "$MODULE" == "ng2-components" ]); then + (./scripts/npm-build-all.sh -t;); fi - - if ([ "$MODULE" == "ng2-alfresco-documentlist" ] || [ "$MODULE" == "ng2-alfresco-webscript" ] || [ "$MODULE" == "ng2-activiti-processlist" ] || [ "$MODULE" == "ng2-activiti-tasklist" ]); then - (cd ng2-components/ng2-alfresco-datatable; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); + - if ([ "$MODULE" == "ng2-demo-shell" ]); then + (cd demo-shell-ng2 && npm install && npm run test || exit 1;); fi - - if ([ "$MODULE" == "ng2-activiti-tasklist" ] || [ "$MODULE" == "ng2-activiti-processlist" ]); then - (cd ng2-components/ng2-alfresco-datatable; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - (cd ng2-components/ng2-activiti-form; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - fi - - if ([ "$MODULE" == "ng2-activiti-processlist" ]); then - (cd ng2-components/ng2-alfresco-datatable; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - (cd ng2-components/ng2-activiti-form; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - (cd ng2-components/ng2-activiti-tasklist; npm link ng2-alfresco-core; npm link ng2-alfresco-datatable; npm link ng2-activiti-form; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - fi - - if ([ "$MODULE" == "ng2-activiti-analytics" ]); then - (cd ng2-components/ng2-activiti-diagrams; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - fi - - if ([ "$MODULE" == "ng2-alfresco-search" ]); then - (cd ng2-components/ng2-alfresco-datatable; npm link ng2-alfresco-core; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - (cd ng2-components/ng2-alfresco-documentlist; npm link ng2-alfresco-core; npm link ng2-alfresco-datatable; if [ ! -d "bundles" ]; then npm install && npm run build && npm link; fi); - fi - - cd ng2-components/$MODULE; -script: npm install && npm run travis && npm run test + # Send coverage data to Coveralls after_success: bash <(curl -s https://codecov.io/bash) -X gcov @@ -61,18 +30,4 @@ cache: - ./node_modules/material-design-lite - ./node_modules/material-design-icons - demo-shell-ng2/node_modules - - ng2-components/ng2-activiti-form/node_modules - - ng2-components/ng2-activiti-processlist/node_modules - - ng2-components/ng2-activiti-tasklist/node_modules - - ng2-components/ng2-alfresco-core/node_modules - - ng2-components/ng2-alfresco-datatable/node_modules - - ng2-components/ng2-alfresco-documentlist/node_modules - - ng2-components/ng2-alfresco-login/node_modules - - ng2-components/ng2-alfresco-search/node_modules - - ng2-components/ng2-alfresco-upload/node_modules - - ng2-components/ng2-alfresco-viewer/node_modules - - ng2-components/ng2-alfresco-webscript/node_modules - - ng2-components/ng2-alfresco-tag/node_modules - - ng2-components/ng2-activiti-analytics/node_modules - - ng2-components/ng2-alfresco-userinfo/node_modules - - ng2-components/ng2-activiti-diagrams/node_modules + - ng2-components/node_modules diff --git a/appveyor.yml b/appveyor.yml index 2e00efed22..74bffe5fad 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,50 +9,16 @@ environment: nodejs_version: "5" matrix: - - COMPONENT_NAME: ng2-alfresco-core - - COMPONENT_NAME: ng2-alfresco-datatable - - COMPONENT_NAME: ng2-alfresco-documentlist - - COMPONENT_NAME: ng2-alfresco-login - - COMPONENT_NAME: ng2-alfresco-search - - COMPONENT_NAME: ng2-alfresco-upload - - COMPONENT_NAME: ng2-alfresco-viewer - - COMPONENT_NAME: ng2-alfresco-tag - - COMPONENT_NAME: ng2-alfresco-webscript - - COMPONENT_NAME: ng2-activiti-form - - COMPONENT_NAME: ng2-activiti-tasklist - - COMPONENT_NAME: ng2-activiti-processlist - - COMPONENT_NAME: ng2-activiti-diagrams - - COMPONENT_NAME: ng2-activiti-analytics - - COMPONENT_NAME: ng2-alfresco-userinfo - - COMPONENT_NAME: ng2-alfresco-social + - COMPONENT_NAME: ng2-components + - COMPONENT_NAME: ng2-demo-shell # Install scripts. (runs after repo cloning) install: # Get the latest stable version of Node.js or io.js - ps: Install-Product node $env:nodejs_version # install module - - IF %COMPONENT_NAME% NEQ ng2-alfresco-core (cd ng2-components/ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-alfresco-documentlist (cd ng2-components/ng2-alfresco-datatable && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-alfresco-search (cd ng2-components/ng2-alfresco-datatable && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-alfresco-search (cd ng2-components/ng2-alfresco-documentlist && npm link ng2-alfresco-core && npm link ng2-alfresco-datatable && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (cd ng2-components/ng2-alfresco-datatable && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (cd ng2-components/ng2-activiti-form && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-processlist (cd ng2-components/ng2-activiti-tasklist && npm link ng2-alfresco-core && npm link ng2-alfresco-datatable && npm link ng2-activiti-form && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-tasklist (cd ng2-components/ng2-alfresco-datatable && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-tasklist (cd ng2-components/ng2-activiti-form && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-alfresco-webscript (cd ng2-components/ng2-alfresco-datatable && npm link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - IF %COMPONENT_NAME% EQU ng2-activiti-analytics (cd ng2-components/ng2-activiti-diagrams && npm link link ng2-alfresco-core && npm link && npm install && npm run build && cd ../../) - - cd ng2-components/%COMPONENT_NAME% - - npm run travis - -# Post-install test scripts. -test_script: - - npm install - # Output useful info for debugging. - - node --version - - npm --version - # run tests - - npm test + - IF %COMPONENT_NAME% EQU ng2-components (./scripts/npm-build-all.sh -t) + - IF %COMPONENT_NAME% EQU ng2-demo-shell (cd demo-shell-ng2 && npm install && npm run test || exit 1) # Don't actually build. build: off diff --git a/demo-shell-ng2/app/polyfills.ts b/demo-shell-ng2/app/polyfills.ts index d5be0fad92..541adc72dc 100644 --- a/demo-shell-ng2/app/polyfills.ts +++ b/demo-shell-ng2/app/polyfills.ts @@ -1,16 +1,17 @@ import 'core-js/es6'; import 'core-js/es7/reflect'; +import 'intl'; -// IE 8-11 -require('zone.js/dist/zone'); +require('zone.js/dist/zone'); // IE 8-11 +require('element.scrollintoviewifneeded-polyfill'); // IE/FF if (process.env.ENV === 'production') { - // Production + // Production } else { - // Development + // Development - Error['stackTraceLimit'] = Infinity; + Error['stackTraceLimit'] = Infinity; - require('zone.js/dist/long-stack-trace-zone'); + require('zone.js/dist/long-stack-trace-zone'); } diff --git a/demo-shell-ng2/app/vendor.ts b/demo-shell-ng2/app/vendor.ts index 91d7764380..9883f4891e 100644 --- a/demo-shell-ng2/app/vendor.ts +++ b/demo-shell-ng2/app/vendor.ts @@ -32,39 +32,44 @@ import 'ng2-alfresco-webscript'; import 'ng2-alfresco-userinfo'; // Polyfill(s) for dialogs -require('script!dialog-polyfill/dialog-polyfill'); +require('script-loader!dialog-polyfill/dialog-polyfill'); import 'dialog-polyfill/dialog-polyfill.css'; // Flags import 'flag-icon-css/css/flag-icon.min.css'; -import '../public/css/app.css'; -import '../public/css/muli-font.css'; - // Load the Angular Material 2 stylesheet import '../public/css/angular-material.css'; +// Google Material Design Lite +import 'material-design-lite/material.js'; +import 'material-design-lite/dist/material.orange-blue.min.css'; +import 'material-design-icons/iconfont/material-icons.css'; + +import '../public/css/app.css'; +import '../public/css/muli-font.css'; + import 'ng2-activiti-form/stencils/runtime.ng1'; import 'ng2-activiti-form/stencils/runtime.adf'; import 'ng2-charts'; import 'chart.js'; -require('script!raphael/raphael.min.js'); +require('script-loader!raphael/raphael.min.js'); -require('script!moment/min/moment.min.js'); +require('script-loader!moment/min/moment.min.js'); import 'md-date-time-picker/dist/css/mdDateTimePicker.css'; -require('script!md-date-time-picker/dist/js/mdDateTimePicker.min.js'); -require('script!md-date-time-picker/dist/js/draggabilly.pkgd.min.js'); +require('script-loader!md-date-time-picker/dist/js/mdDateTimePicker.min.js'); +require('script-loader!md-date-time-picker/dist/js/draggabilly.pkgd.min.js'); require('pdfjs-dist/web/compatibility.js'); // Setting worker path to worker bundle. let pdfjsLib = require('pdfjs-dist'); if (process.env.ENV === 'production') { - pdfjsLib.PDFJS.workerSrc = './pdf.worker.js'; + pdfjsLib.PDFJS.workerSrc = './pdf.worker.js'; } else { - pdfjsLib.PDFJS.workerSrc = '../../node_modules/pdfjs-dist/build/pdf.worker.js'; + pdfjsLib.PDFJS.workerSrc = '../../node_modules/pdfjs-dist/build/pdf.worker.js'; } require('pdfjs-dist/web/pdf_viewer.js'); diff --git a/demo-shell-ng2/config/helpers.js b/demo-shell-ng2/config/helpers.js index 15dc4a5a46..a11fa771d6 100644 --- a/demo-shell-ng2/config/helpers.js +++ b/demo-shell-ng2/config/helpers.js @@ -1,7 +1,10 @@ var path = require('path'); + var _root = path.resolve(__dirname, '..'); + function root(args) { args = Array.prototype.slice.call(arguments, 0); return path.join.apply(path, [_root].concat(args)); } + exports.root = root; diff --git a/demo-shell-ng2/config/karma.conf.js b/demo-shell-ng2/config/karma.conf.js index c3b4a58f9e..ae013cbe5e 100644 --- a/demo-shell-ng2/config/karma.conf.js +++ b/demo-shell-ng2/config/karma.conf.js @@ -1,37 +1,71 @@ var webpackConfig = require('./webpack.test'); module.exports = function (config) { - var _config = { - basePath: '', + var _config = { + basePath: '', - frameworks: ['jasmine'], + frameworks: ['jasmine'], - files: [ - { pattern: './config/karma-test-shim.js', watched: false } - ], + files: [ + { pattern: './config/karma-test-shim.js', watched: false } + ], - preprocessors: { - './config/karma-test-shim.js': ['webpack', 'sourcemap'] - }, + preprocessors: { + './config/karma-test-shim.js': ['webpack', 'sourcemap'] + }, - webpack: webpackConfig, + webpack: webpackConfig, - webpackMiddleware: { - stats: 'errors-only' - }, + webpackMiddleware: { + stats: 'errors-only' + }, - webpackServer: { - noInfo: true - }, + port: 9876, - reporters: ['mocha'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: false, - browsers: ['Chrome'], - singleRun: true - }; + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, - config.set(_config); + colors: true, + + autoWatch: true, + + captureTimeout: 180000, + browserDisconnectTimeout: 180000, + browserDisconnectTolerance: 3, + browserNoActivityTimeout: 300000, + + browsers: ['Chrome'], + + customLaunchers: { + Chrome_travis_ci: { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + + // Karma plugins loaded + plugins: [ + require('../node_modules/karma-jasmine'), + require('../node_modules/karma-coverage'), + require('../node_modules/karma-sourcemap-loader'), + require('../node_modules/karma-chrome-launcher'), + require('../node_modules/karma-mocha-reporter'), + require('../node_modules/karma-webpack'), + require('../node_modules/karma-jasmine-html-reporter') + ], + + webpackServer: { + noInfo: true + }, + + reporters: ['mocha'] + + }; + + if (process.env.TRAVIS) { + config.browsers = ['Chrome_travis_ci']; + } + + config.set(_config); }; diff --git a/demo-shell-ng2/config/webpack.common.js b/demo-shell-ng2/config/webpack.common.js index 6f4c13f5d5..a683c6bf73 100644 --- a/demo-shell-ng2/config/webpack.common.js +++ b/demo-shell-ng2/config/webpack.common.js @@ -1,22 +1,27 @@ -var webpack = require('webpack'); -var HtmlWebpackPlugin = require('html-webpack-plugin'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var helpers = require('./helpers'); -var path = require('path'); -var fs = require('fs'); -var glob = require('glob'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); +const webpack = require('webpack'); +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const CopyWebpackPlugin = require('copy-webpack-plugin'); +const ExtractTextPlugin = require("extract-text-webpack-plugin"); +const helpers = require('./helpers'); +const path = require('path'); -const rootPath = helpers.root('node_modules'); - -var pattern = '+(alfresco-js-api|ng2-alfresco|ng2-activiti)*'; -var options = { - cwd: rootPath, - realpath: true -}; - -var alfrescoLibs = glob.sync(pattern, options); -// console.dir(alfrescoLibs); +const alfrescoLibs = [ + 'ng2-activiti-analytics', + 'ng2-activiti-diagrams', + 'ng2-activiti-form', + 'ng2-activiti-processlist', + 'ng2-activiti-tasklist', + 'ng2-alfresco-core', + 'ng2-alfresco-datatable', + 'ng2-alfresco-documentlist', + 'ng2-alfresco-login', + 'ng2-alfresco-search', + 'ng2-alfresco-tag', + 'ng2-alfresco-upload', + 'ng2-alfresco-userinfo', + 'ng2-alfresco-viewer', + 'ng2-alfresco-webscript' +]; module.exports = { entry: { @@ -24,146 +29,108 @@ module.exports = { 'vendor': './app/vendor.ts', 'app': './app/main.ts' }, - - resolve: { - extensions: ['', '.ts', '.js'], - modules: [ - helpers.root('app'), - helpers.root('node_modules') - ], - root: rootPath, - fallback: rootPath - }, - - resolveLoader: { - alias: { - 'systemjs-loader': helpers.root('config', 'loaders', 'system.js'), - 'debug-loader': helpers.root('config', 'loaders', 'debug.js') - }, - fallback: rootPath - }, module: { - preLoaders: [ + rules: [ { + enforce: 'pre', test: /\.js$/, - include: [ - ...alfrescoLibs - ], - loader: 'source-map-loader' - } - ], - loaders: [ + include: [helpers.root('app')], + loader: 'source-map-loader', + exclude: [ /node_modules/, /public/, /resources/, /dist/] + }, + { + enforce: 'pre', + test: /\.ts$/, + loader: 'tslint-loader', + include: [helpers.root('app')], + options: { + emitErrors: true + }, + exclude: [ /node_modules/, /public/, /resources/, /dist/] + }, + { + enforce: 'pre', + test: /\.ts$/, + use: 'source-map-loader', + exclude: [ /public/, /resources/, /dist/] + }, { test: /\.ts$/, - loaders: ['awesome-typescript-loader', 'angular2-template-loader', 'systemjs-loader'], - exclude: ['node_modules','public'] - }, - { - test: /\.js$/, - include: [ - ...alfrescoLibs + include: [helpers.root('app')], + loader: [ + 'ts-loader', + 'angular2-template-loader' ], - loaders: ['angular2-template-loader', 'source-map-loader', 'systemjs-loader'] + exclude: [ /node_modules/, /public/, /resources/, /dist/] }, { test: /\.html$/, - exclude: alfrescoLibs, - loader: 'html' + loader: 'html-loader', + exclude: [ /node_modules/, /public/, /resources/, /dist/] }, { - test: /\.html$/, - include: alfrescoLibs, - loader: 'html', - query: { - interpolate: true - } + test: /\.css$/, + exclude: helpers.root('app'), + loader: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: 'css-loader?sourceMap' + }) + }, + { + test: /\.css$/, + include: helpers.root('app'), + loader: 'raw-loader' }, { test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, - loader: 'file?name=assets/[name].[hash].[ext]' - }, - { - test: /\.css$/, - exclude: [ - helpers.root('app'), - ...alfrescoLibs - ], - loader: ExtractTextPlugin.extract('style', 'css?sourceMap') - }, - { - test: /\.css$/, - include: [ - helpers.root('app'), - ...alfrescoLibs - ], - loader: 'raw' + loader: 'file-loader?name=assets/[name].[hash].[ext]' } ] }, - + resolve: { + extensions: ['.ts', '.js'], + modules: [helpers.root('../ng2-components'), helpers.root('node_modules')] + }, plugins: [ - - new webpack.WatchIgnorePlugin([ new RegExp('^((?!(ng2-activiti|ng2-alfresco|demo-shell-ng2)).)((?!(src|app)).)*$')]), + // Workaround for angular/angular#11580 + new webpack.ContextReplacementPlugin( + // The (\\|\/) piece accounts for path separators in *nix and Windows + /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, + helpers.root('./app'), // location of your src + {} // a map of your routes + ), + new HtmlWebpackPlugin({ + template: './index.html' + }), new CopyWebpackPlugin([ + ... alfrescoLibs.map(lib => { + return { + context: `../ng2-components/${lib}/bundles/assets/` , + from: '**/*', + to: `bundles/assets/` + } + }), + { + context: 'resources/i18n', + from: '**/*.json', + to: 'resources/i18n' + }, + ... alfrescoLibs.map(lib => { + return { + context: 'node_modules', + from: `${lib}/src/i18n/*.json`, + to: 'node_modules' + } + }), + { + from: 'favicon-96x96.png' + }, + { + from: 'node_modules/pdfjs-dist/build/pdf.worker.js', + to: 'pdf.worker.js' + }, { - from: 'versions.json' - },{ - context: 'node_modules', - from: 'element.scrollintoviewifneeded-polyfill/index.js', - to: 'js/element.scrollintoviewifneeded-polyfill.js', - flatten: true - },{ - context: 'node_modules', - from: 'classlist-polyfill/src/index.js', - to: 'js/classlist-polyfill.js', - flatten: true - }, { - context: 'node_modules', - from: 'intl/dist/Intl.min.js', - to: 'js/Intl.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'web-animations-js/web-animations.min.js', - to: 'js/web-animations.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'core-js/client/shim.min.js', - to: 'js/shim.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'es6-shim/es6-shim.min.js', - to: 'js/es6-shim.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'es5-shim/es5-shim.min.js', - to: 'js/es5-shim.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'systemjs/dist/system-polyfills.js', - to: 'js/system-polyfills.js', - flatten: true - }, { - context: 'node_modules', - from: 'material-design-lite/material.min.js', - to: 'js/material.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'material-design-lite/material.min.js', - to: 'js/material.min.js', - flatten: true - }, { - context: 'node_modules', - from: 'material-design-icons/iconfont/', - to: 'css/iconfont/', - flatten: true - }, { context: 'public', from: '', to: '' @@ -172,15 +139,6 @@ module.exports = { new webpack.optimize.CommonsChunkPlugin({ name: ['app', 'vendor', 'polyfills'] - }), - - new HtmlWebpackPlugin({ - template: 'index.html' }) - ], - - node: { - fs: 'empty', - module: false - } + ] }; diff --git a/demo-shell-ng2/config/webpack.dev.js b/demo-shell-ng2/config/webpack.dev.js index 2816a0faeb..654d3b8b7b 100644 --- a/demo-shell-ng2/config/webpack.dev.js +++ b/demo-shell-ng2/config/webpack.dev.js @@ -1,11 +1,9 @@ -var webpackMerge = require('webpack-merge'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var commonConfig = require('./webpack.common.js'); -var helpers = require('./helpers'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); +const webpackMerge = require('webpack-merge'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const commonConfig = require('./webpack.common.js'); +const helpers = require('./helpers'); module.exports = webpackMerge(commonConfig, { - devtool: 'cheap-module-eval-source-map', output: { @@ -15,54 +13,15 @@ module.exports = webpackMerge(commonConfig, { }, plugins: [ - new ExtractTextPlugin('[name].css'), - new CopyWebpackPlugin([ - { - from: 'favicon-96x96.png' - }, - { - from: 'node_modules/pdfjs-dist/build/pdf.worker.js', - to: 'pdf.worker.js' - }, - { - context: 'resources/i18n', - from: '**/*.json', - to: 'resources/i18n' - }, - // Copy i18n folders for all modules with ng2-alfresco- prefix - { - context: 'node_modules', - from: 'ng2-alfresco-*/src/i18n/*.json', - to: 'node_modules' - }, - // Copy i18n folders for all modules with ng2-activiti- prefix - { - context: 'node_modules', - from: 'ng2-activiti-*/src/i18n/*.json', - to: 'node_modules' - }, - // Copy asstes folders for all modules with ng2-activiti- prefix - { - context: 'node_modules', - from: 'ng2-activiti-*/src/assets/images/*.*', - to: 'assets/images', - flatten: true - }, - // Copy asstes folders for all modules with ng2-alfresco- prefix - { - context: 'node_modules', - from: 'ng2-alfresco-*/src/assets/images/*.*', - to: 'assets/images', - flatten: true - } - ]) + new ExtractTextPlugin('[name].css') ], devServer: { - host: '0.0.0.0', + contentBase: helpers.root('dist'), + compress: true, port: 3000, - inline: true, historyApiFallback: true, - stats: 'minimal' + host: '0.0.0.0', + inline: true } }); diff --git a/demo-shell-ng2/config/webpack.prod.js b/demo-shell-ng2/config/webpack.prod.js index 1b73b19959..600823350e 100644 --- a/demo-shell-ng2/config/webpack.prod.js +++ b/demo-shell-ng2/config/webpack.prod.js @@ -1,104 +1,45 @@ -var webpack = require('webpack'); -var webpackMerge = require('webpack-merge'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var CopyWebpackPlugin = require('copy-webpack-plugin'); -var commonConfig = require('./webpack.common.js'); -var helpers = require('./helpers'); +const webpack = require('webpack'); +const webpackMerge = require('webpack-merge'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const commonConfig = require('./webpack.common.js'); +const helpers = require('./helpers'); const ENV = process.env.NODE_ENV = process.env.ENV = 'production'; module.exports = webpackMerge(commonConfig, { - devtool: 'source-map', + devtool: 'source-map', - output: { - path: helpers.root('dist'), - publicPath: '/', - filename: '[name].[hash].js', - chunkFilename: '[id].[hash].chunk.js' - }, + output: { + path: helpers.root('dist'), + publicPath: '/', + filename: '[name].[hash].js', + chunkFilename: '[id].[hash].chunk.js' + }, - htmlLoader: { - minimize: false // workaround for ng2 - }, - - plugins: [ - // Define env variables to help with builds - // Reference: https://webpack.github.io/docs/list-of-plugins.html#defineplugin - new webpack.DefinePlugin({ - 'process.env': { - 'ENV': JSON.stringify(ENV) - } - }), - - // Reference: http://webpack.github.io/docs/list-of-plugins.html#noerrorsplugin - // Only emit files when there are no errors - new webpack.NoErrorsPlugin(), - - // Reference: http://webpack.github.io/docs/list-of-plugins.html#dedupeplugin - // Dedupe modules in the output - new webpack.optimize.DedupePlugin(), - - // Reference: http://webpack.github.io/docs/list-of-plugins.html#uglifyjsplugin - // Minify all javascript, switch loaders to minimizing mode - new webpack.optimize.UglifyJsPlugin({ - output:{ - comments: false - }, - mangle: { - keep_fnames: true - }, - compressor: { - screw_ie8: true, - warnings: false - } - }), - - // Extract css files - // Reference: https://github.com/webpack/extract-text-webpack-plugin - // Disabled when in test mode or not in build mode - new ExtractTextPlugin('[name].[hash].css'), - - // Copy assets from the public folder - // Reference: https://github.com/kevlened/copy-webpack-plugin - new CopyWebpackPlugin([ - { - from: 'favicon-96x96.png' - }, - { - from: 'node_modules/pdfjs-dist/build/pdf.worker.js', - to: 'pdf.worker.js' - }, - { - context: 'resources/i18n', - from: '**/*.json', - to: 'resources/i18n' - }, - // Copy i18n folders for all modules with ng2-alfresco- prefix - { - context: 'node_modules', - from: 'ng2-alfresco-*/src/i18n/*.json', - to: 'node_modules' - }, - // Copy i18n folders for all modules with ng2-activiti- prefix - { - context: 'node_modules', - from: 'ng2-activiti-*/src/i18n/*.json', - to: 'node_modules' - }, - // Copy asstes folders for all modules with ng2-activiti- prefix - { - context: 'node_modules', - from: 'ng2-activiti-*/src/assets/images/*.*', - to: 'assets/images', - flatten : true - }, - // Copy asstes folders for all modules with ng2-alfresco- prefix - { - context: 'node_modules', - from: 'ng2-alfresco-*/src/assets/images/*.*', - to: 'assets/images', - flatten : true - } - ]) - ] + plugins: [ + new webpack.NoEmitOnErrorsPlugin(), + new webpack.optimize.UglifyJsPlugin({ // https://github.com/angular/angular/issues/10618 + mangle: { + keep_fnames: true + }, + compress: { + warnings: false + }, + output: { + comments: false + }, + sourceMap: true + }), + new ExtractTextPlugin('[name].[hash].css'), + new webpack.DefinePlugin({ + 'process.env': { + 'ENV': JSON.stringify(ENV) + } + }), + new webpack.LoaderOptionsPlugin({ + htmlLoader: { + minimize: false // workaround for ng2 + } + }) + ] }); diff --git a/demo-shell-ng2/config/webpack.test.js b/demo-shell-ng2/config/webpack.test.js index c9bcd38d21..1da37cd34d 100644 --- a/demo-shell-ng2/config/webpack.test.js +++ b/demo-shell-ng2/config/webpack.test.js @@ -1,78 +1,45 @@ -var helpers = require('./helpers'); -var fs = require('fs'); -var glob = require('glob'); - -const rootPath = helpers.root('node_modules'); - -var pattern = '+(alfresco-js-api|ng2-alfresco|ng2-activiti)*'; -var options = { - cwd: rootPath, - realpath: true -}; - -var alfrescoLibs = glob.sync(pattern, options); +const webpack = require('webpack'); +const helpers = require('./helpers'); module.exports = { - devtool: 'inline-source-map', + devtool: 'inline-source-map', - resolve: { - extensions: ['', '.ts', '.js'], - modules: [ - helpers.root('app'), - helpers.root('node_modules') - ], - root: rootPath, - fallback: rootPath - }, + resolve: { + extensions: ['.ts', '.js'], + modules: [helpers.root('../ng2-components'), helpers.root('node_modules')] + }, - resolveLoader: { - alias: { - 'systemjs-loader': helpers.root('config', 'loaders', 'system.js') - }, - fallback: rootPath - }, + module: { + rules: [ + { + test: /\.ts$/, + loaders: ['ts-loader', 'angular2-template-loader'], + exclude: [ /public/, /resources/, /dist/] + }, + { + test: /\.html$/, + loader: 'html-loader', + exclude: [ /public/, /resources/, /dist/] - module: { - preLoaders: [ - { - test: /\.js$/, - include: [ - ...alfrescoLibs - ], - loader: 'source-map-loader' - } - ], - loaders: [ - { - test: /\.ts$/, - loaders: ['awesome-typescript-loader', 'angular2-template-loader', 'systemjs-loader'], - exclude: ['node_modules','public'] - }, - { - test: /\.js$/, - include: [ - ...alfrescoLibs - ], - loaders: ['angular2-template-loader', 'source-map-loader', 'systemjs-loader'] - }, - { - test: /\.html$/, - loader: 'html' + }, + { + test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, + loader: 'null-loader' + }, + { + test: /\.css$/, + loader: ['to-string-loader', 'css-loader'], + exclude: [ /public/, /resources/, /dist/] + } + ] + }, - }, - { - test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/, - loader: 'null' - }, - { - test: /\.css$/, - loader: 'raw' - } + plugins: [ + new webpack.ContextReplacementPlugin( + // The (\\|\/) piece accounts for path separators in *nix and Windows + /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/, + helpers.root('./src'), // location of your src + {} // a map of your routes + ) ] - }, - - node: { - fs: 'empty', - module: false - } } diff --git a/demo-shell-ng2/index.html b/demo-shell-ng2/index.html index 0e8d01209c..7e93895ca9 100644 --- a/demo-shell-ng2/index.html +++ b/demo-shell-ng2/index.html @@ -7,13 +7,6 @@ - - - - - - - - - - - -