summaryrefslogtreecommitdiffstats
path: root/webpack.common.js
blob: 1fa889b98789c957ec85dbabcb4bb8787a804623 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const path = require('path');
const merge = require('webpack-merge');
const { VueLoaderPlugin } = require('vue-loader');

const core = require('./core/webpack');
const settings = require('./settings/webpack');

const accessibility = require('./apps/accessibility/webpack');
const comments = require('./apps/comments/webpack');
const files_sharing = require('./apps/files_sharing/webpack');
const files_trashbin = require('./apps/files_trashbin/webpack');
const files_versions = require('./apps/files_versions/webpack');
const oauth2 = require('./apps/oauth2/webpack');
const systemtags = require('./apps/systemtags/webpack');
const twofactor_backupscodes = require('./apps/twofactor_backupcodes/webpack');
const updatenotifications = require('./apps/updatenotification/webpack');
const workflowengine = require('./apps/workflowengine/webpack');

module.exports = []
	.concat(
		core,
		settings,
		accessibility,
		comments,
		files_sharing,
		files_trashbin,
		files_versions,
		oauth2,
		systemtags,
		twofactor_backupscodes,
		updatenotifications,
		workflowengine
	)
	.map(config =>
		merge(config, {
			module: {
				rules: [
					{
						test: /\.css$/,
						use: ['style-loader', 'css-loader']
					},
					{
						test: /\.scss$/,
						use: ['style-loader', 'css-loader', 'sass-loader']
					},
					{
						test: /\.js$/,
						loader: 'babel-loader',
						exclude: /node_modules/
					},
					{
						test: /\.vue$/,
						loader: 'vue-loader'
					},
					{
						test: /\.(png|jpg|gif)$/,
						loader: 'url-loader',
						options: {
							name: '[name].[ext]?[hash]',
							limit: 8192
						}
					},
					{
						test: /\.handlebars/,
						loader: "handlebars-loader",
						query: {
							extensions: '.handlebars'
						}
					}
				]
			},
			plugins: [
				new VueLoaderPlugin()
			],
			resolve: {
				alias: {
					OC: path.resolve(__dirname, './core/src/OC'),
					OCA: path.resolve(__dirname, './core/src/OCA'),
					// make sure to use the handlebar runtime when importing
					handlebars: 'handlebars/runtime'
				},
				extensions: ['*', '.js', '.vue', '.json']
			}
		})
	);