diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2019-05-24 14:08:39 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2019-05-29 15:19:18 +0200 |
commit | b53a9130a60962fd2964d37b1ffafe1f3eaff5df (patch) | |
tree | 063c28661e65f9c5dec9b7e00c7d4ecea6e207d2 /webpack.common.js | |
parent | 21f9487939ecc0e37ca1dd5cecdde258cd55d89a (diff) | |
download | nextcloud-server-b53a9130a60962fd2964d37b1ffafe1f3eaff5df.tar.gz nextcloud-server-b53a9130a60962fd2964d37b1ffafe1f3eaff5df.zip |
Unify webpack config
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'webpack.common.js')
-rw-r--r-- | webpack.common.js | 109 |
1 files changed, 83 insertions, 26 deletions
diff --git a/webpack.common.js b/webpack.common.js index 94398ebc4b8..1fa889b9878 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -1,28 +1,85 @@ -const core = require('./core/webpack') -const settings = require('./settings/webpack') +const path = require('path'); +const merge = require('webpack-merge'); +const { VueLoaderPlugin } = require('vue-loader'); -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') +const core = require('./core/webpack'); +const settings = require('./settings/webpack'); -module.exports = [].concat( - core, - settings, - accessibility, - comments, - files_sharing, - files_trashbin, - files_versions, - oauth2, - systemtags, - twofactor_backupscodes, - updatenotifications, - workflowengine -); +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'] + } + }) + ); |