mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-12 17:04:57 +00:00
149 lines
7.0 KiB
JavaScript
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'
|
|
}
|
|
])
|
|
]
|
|
});
|