Eugenio Romano 24bf9fb1c3 add style builder in demo shell for development purpose (#2385)
remove precompiled css theme from repository
2017-09-28 14:20:02 -04:00

149 lines
7.0 KiB
JavaScript

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 path = require('path');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HappyPack = require('happypack');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
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 = webpackMerge(commonConfig, {
devtool: 'cheap-module-source-map',
output: {
path: helpers.root('dist'),
filename: '[name].js',
chunkFilename: '[id].chunk.js'
},
module: {
rules: [
{
test: /\.ts$/,
include: [helpers.root('app'), helpers.root('../ng2-components')],
loader: [
'happypack/loader?id=ts','angular2-template-loader'
],
exclude: [/node_modules/, /public/, /resources/, /dist/]
},
{
test: /\.scss$/,
use: [{
loader: "to-string-loader"
}, {
loader: "raw-loader"
}, {
loader: "sass-loader",
options: {
includePaths: [path.resolve(__dirname, '../../ng2-components/ng2-alfresco-core/styles')]
}
}]
}
]
},
resolve: {
alias: {
"ng2-alfresco-core$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-core/index.ts'),
"ng2-alfresco-core": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-core'),
"ng2-alfresco-datatable$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-datatable/index.ts'),
"ng2-alfresco-datatable": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-datatable'),
"ng2-activiti-form/stencils/runtime.ng1$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-form/stencils/runtime.ng1'),
"ng2-activiti-form/stencils/runtime.adf$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-form/stencils/runtime.adf'),
"ng2-activiti-diagrams$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-diagrams/index.ts'),
"ng2-activiti-diagrams": path.resolve(__dirname, '../../ng2-components/ng2-activiti-diagrams'),
"ng2-activiti-analytics$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-analytics/index.ts'),
"ng2-activiti-analytics": path.resolve(__dirname, '../../ng2-components/ng2-activiti-analytics'),
"ng2-activiti-form$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-form/index.ts'),
"ng2-activiti-form": path.resolve(__dirname, '../../ng2-components/ng2-activiti-form'),
"ng2-activiti-tasklist$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-tasklist/index.ts'),
"ng2-activiti-tasklist": path.resolve(__dirname, '../../ng2-components/ng2-activiti-tasklist'),
"ng2-activiti-processlist$": path.resolve(__dirname, '../../ng2-components/ng2-activiti-processlist/index.ts'),
"ng2-activiti-processlist": path.resolve(__dirname, '../../ng2-components/ng2-activiti-processlist'),
"ng2-alfresco-documentlist$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-documentlist/index.ts'),
"ng2-alfresco-documentlist": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-documentlist'),
"ng2-alfresco-login$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-login/index.ts'),
"ng2-alfresco-login": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-login'),
"ng2-alfresco-search$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-search/index.ts'),
"ng2-alfresco-search": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-search'),
"ng2-alfresco-social$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-social/index.ts'),
"ng2-alfresco-social": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-social'),
"ng2-alfresco-tag$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-tag/index.ts'),
"ng2-alfresco-tag": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-tag'),
"ng2-alfresco-upload$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-upload/index.ts'),
"ng2-alfresco-upload": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-upload'),
"ng2-alfresco-viewer$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-viewer/index.ts'),
"ng2-alfresco-viewer": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-viewer'),
"ng2-alfresco-webscript$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-webscript/index.ts'),
"ng2-alfresco-webscript": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-webscript'),
"ng2-alfresco-userinfo$": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-userinfo/index.ts'),
"ng2-alfresco-userinfo": path.resolve(__dirname, '../../ng2-components/ng2-alfresco-userinfo')
},
extensions: ['.ts', '.js'],
modules: [path.resolve(__dirname, '../node_modules')]
},
plugins: [
new ForkTsCheckerWebpackPlugin({tsconfig: "tsconfig.dev.json"}),
new HappyPack({
id: 'ts',
threads: 8,
loaders: [
{
path: 'ts-loader',
query: {happyPackMode: true}
}
]
}),
new webpack.NoEmitOnErrorsPlugin(),
new ExtractTextPlugin('[name].[hash].css'),
new webpack.LoaderOptionsPlugin({
htmlLoader: {
minimize: false // workaround for ng2
}
}),
new CopyWebpackPlugin([
... alfrescoLibs.map(lib => {
return {
context: `../ng2-components/${lib}/src/i18n/`,
from: '**/*',
to: `assets/${lib}/i18n/`
}
}),
{
from: 'app.config-dev.json',
to: 'app.config.json'
}
]),
new CopyWebpackPlugin([
{
context: `../ng2-components/ng2-alfresco-core/prebuilt-themes/`,
from: '**/*.css',
to: 'prebuilt-themes'
}
])
]
});