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 @@
-
-
-
-
-
-
-
-
-
-
-
-