Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package-lock.json29
-rw-r--r--package.json1
-rw-r--r--webpack.common.js216
-rw-r--r--webpack.dev.js12
-rw-r--r--webpack.modules.js102
-rw-r--r--webpack.prod.js12
6 files changed, 223 insertions, 149 deletions
diff --git a/package-lock.json b/package-lock.json
index 2b0be31aff4..2e652a74271 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -88,6 +88,7 @@
"babel-loader-exclude-node-modules-except": "^1.2.1",
"css-loader": "^5.2.7",
"eslint-loader": "^4.0.2",
+ "eslint-webpack-plugin": "^2.5.4",
"exports-loader": "^1.1.1",
"file-loader": "^6.2.0",
"handlebars-loader": "^1.7.1",
@@ -7661,7 +7662,6 @@
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz",
"integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==",
"dev": true,
- "peer": true,
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -7671,8 +7671,7 @@
"version": "0.0.50",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
"integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"node_modules/@types/graceful-fs": {
"version": "4.1.5",
@@ -8334,7 +8333,6 @@
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=8"
}
@@ -11511,7 +11509,6 @@
"resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz",
"integrity": "sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==",
"dev": true,
- "peer": true,
"dependencies": {
"@types/eslint": "^7.2.6",
"arrify": "^2.0.1",
@@ -11537,7 +11534,6 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
- "peer": true,
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -11550,7 +11546,6 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
- "peer": true,
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -11563,7 +11558,6 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
- "peer": true,
"engines": {
"node": ">=0.12.0"
}
@@ -11573,7 +11567,6 @@
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
- "peer": true,
"dependencies": {
"braces": "^3.0.1",
"picomatch": "^2.2.3"
@@ -11587,7 +11580,6 @@
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"dev": true,
- "peer": true,
"dependencies": {
"@types/json-schema": "^7.0.8",
"ajv": "^6.12.5",
@@ -11606,7 +11598,6 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "peer": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -28800,7 +28791,6 @@
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz",
"integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==",
"dev": true,
- "peer": true,
"requires": {
"@types/estree": "*",
"@types/json-schema": "*"
@@ -28810,8 +28800,7 @@
"version": "0.0.50",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
"integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==",
- "dev": true,
- "peer": true
+ "dev": true
},
"@types/graceful-fs": {
"version": "4.1.5",
@@ -29380,8 +29369,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
"integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "dev": true,
- "peer": true
+ "dev": true
},
"asn1.js": {
"version": "5.4.1",
@@ -32154,7 +32142,6 @@
"resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz",
"integrity": "sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==",
"dev": true,
- "peer": true,
"requires": {
"@types/eslint": "^7.2.6",
"arrify": "^2.0.1",
@@ -32169,7 +32156,6 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
- "peer": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -32179,7 +32165,6 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
- "peer": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -32188,15 +32173,13 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "peer": true
+ "dev": true
},
"micromatch": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz",
"integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==",
"dev": true,
- "peer": true,
"requires": {
"braces": "^3.0.1",
"picomatch": "^2.2.3"
@@ -32207,7 +32190,6 @@
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
"dev": true,
- "peer": true,
"requires": {
"@types/json-schema": "^7.0.8",
"ajv": "^6.12.5",
@@ -32219,7 +32201,6 @@
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "peer": true,
"requires": {
"is-number": "^7.0.0"
}
diff --git a/package.json b/package.json
index e501daf407f..47048cbc7ee 100644
--- a/package.json
+++ b/package.json
@@ -104,6 +104,7 @@
"babel-loader-exclude-node-modules-except": "^1.2.1",
"css-loader": "^5.2.7",
"eslint-loader": "^4.0.2",
+ "eslint-webpack-plugin": "^2.5.4",
"exports-loader": "^1.1.1",
"file-loader": "^6.2.0",
"handlebars-loader": "^1.7.1",
diff --git a/webpack.common.js b/webpack.common.js
index 97ece513eac..74fbef1aa9e 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -1,48 +1,11 @@
/* eslint-disable camelcase */
-const { merge } = require('webpack-merge')
const { VueLoaderPlugin } = require('vue-loader')
const path = require('path')
const BabelLoaderExcludeNodeModulesExcept = require('babel-loader-exclude-node-modules-except')
const ESLintPlugin = require('eslint-webpack-plugin')
-const accessibility = require('./apps/accessibility/webpack')
-const comments = require('./apps/comments/webpack')
-const core = require('./core/webpack')
-const dashboard = require('./apps/dashboard/webpack')
-const dav = require('./apps/dav/webpack')
-const files = require('./apps/files/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 settings = require('./apps/settings/webpack')
-const systemtags = require('./apps/systemtags/webpack')
-const user_status = require('./apps/user_status/webpack')
-const weather_status = require('./apps/weather_status/webpack')
-const twofactor_backupscodes = require('./apps/twofactor_backupcodes/webpack')
-const updatenotification = require('./apps/updatenotification/webpack')
-const workflowengine = require('./apps/workflowengine/webpack')
-
-const modules = {
- accessibility,
- comments,
- core,
- dashboard,
- dav,
- files,
- files_sharing,
- files_trashbin,
- files_versions,
- oauth2,
- settings,
- systemtags,
- user_status,
- weather_status,
- twofactor_backupscodes,
- updatenotification,
- workflowengine,
-}
+const modules = require('./webpack.modules.js')
const modulesToBuild = () => {
const MODULE = process.env.MODULE
@@ -50,84 +13,115 @@ const modulesToBuild = () => {
if (!modules[MODULE]) {
throw new Error(`No module "${MODULE}" found`)
}
- return [modules[MODULE]]
+ return modules[MODULE]
}
- return Object.values(modules)
+ // merge all configs into one object
+ return Object.assign({}, ...Object.values(modules))
}
-module.exports = []
- .concat(
- ...modulesToBuild()
- )
- .map(config => merge({
- module: {
- rules: [
- {
- test: /\.css$/,
- use: ['style-loader', 'css-loader'],
- },
- {
- test: /\.scss$/,
- use: ['style-loader', 'css-loader', 'sass-loader'],
- },
- {
- test: /\.vue$/,
- loader: 'vue-loader',
- exclude: BabelLoaderExcludeNodeModulesExcept([
- 'vue-material-design-icons',
- ]),
- },
- {
- test: /\.js$/,
- loader: 'babel-loader',
- // automatically detect necessary packages to
- // transpile in the node_modules folder
- exclude: BabelLoaderExcludeNodeModulesExcept([
- '@nextcloud/dialogs',
- '@nextcloud/event-bus',
- '@nextcloud/vue-dashboard',
- 'davclient.js',
- 'nextcloud-vue-collections',
- 'p-finally',
- 'p-limit',
- 'p-locate',
- 'p-queue',
- 'p-timeout',
- 'p-try',
- 'semver',
- 'striptags',
- 'toastify-js',
- 'v-tooltip',
- 'yocto-queue',
- ]),
- },
- {
- test: /\.(png|jpg|gif)$/,
- loader: 'url-loader',
- options: {
- name: '[name].[ext]?[hash]',
- limit: 8192,
- },
+module.exports = {
+ entry: modulesToBuild(),
+ output: {
+ // Step away from the src folder and extract to the js folder
+ path: path.join(__dirname),
+ publicPath: '/dist/',
+ filename: (chunkData) => {
+ // Get relative path of the src folder
+ const srcPath = chunkData.chunk.entryModule.context
+ const relativePath = path.relative(__dirname, srcPath)
+
+ // If this is a core source, output in core dist folder
+ if (relativePath.indexOf('core/src') > -1) {
+ return path.join('core/js/dist/', '[name].js?v=[contenthash]')
+ }
+ // Get out of the shared dist folder and output inside apps js folder
+ return path.join(relativePath, '..', 'js') + '/[name].js?v=[contenthash]'
+ },
+ chunkFilename: 'dist/[name]-[id].js?v=[contenthash]',
+ },
+
+ module: {
+ rules: [
+ {
+ test: /\.css$/,
+ use: ['style-loader', 'css-loader'],
+ },
+ {
+ test: /\.scss$/,
+ use: ['style-loader', 'css-loader', 'sass-loader'],
+ },
+ {
+ test: /\.vue$/,
+ loader: 'vue-loader',
+ exclude: BabelLoaderExcludeNodeModulesExcept([
+ 'vue-material-design-icons',
+ ]),
+ },
+ {
+ test: /\.js$/,
+ loader: 'babel-loader',
+ // automatically detect necessary packages to
+ // transpile in the node_modules folder
+ exclude: BabelLoaderExcludeNodeModulesExcept([
+ '@nextcloud/dialogs',
+ '@nextcloud/event-bus',
+ '@nextcloud/vue-dashboard',
+ 'davclient.js',
+ 'nextcloud-vue-collections',
+ 'p-finally',
+ 'p-limit',
+ 'p-locate',
+ 'p-queue',
+ 'p-timeout',
+ 'p-try',
+ 'semver',
+ 'striptags',
+ 'toastify-js',
+ 'v-tooltip',
+ 'yocto-queue',
+ ]),
+ },
+ {
+ test: /\.(png|jpe?g|gif|svg|woff2?|eot|ttf)$/,
+ loader: 'url-loader',
+ options: {
+ name: '[name].[ext]?[hash]',
},
- {
- test: /\.handlebars/,
- loader: 'handlebars-loader',
- query: {
- extensions: '.handlebars',
- },
+ },
+ {
+ test: /\.handlebars/,
+ loader: 'handlebars-loader',
+ query: {
+ extensions: '.handlebars',
},
+ },
- ],
- },
- plugins: [new VueLoaderPlugin(), new ESLintPlugin()],
- 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',
+ ],
+ },
+
+ optimization: {
+ splitChunks: {
+ automaticNameDelimiter: '-',
+ cacheGroups: {
+ vendors: {
+ test: /[\\/]node_modules[\\/]/,
+ enforce: true,
+ name: 'nextcloud',
+ chunks: 'all',
+ },
},
- extensions: ['*', '.js', '.vue'],
- symlinks: false,
},
- }, config))
+ },
+
+ plugins: [new VueLoaderPlugin(), new ESLintPlugin()],
+ 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'],
+ symlinks: false,
+ },
+}
diff --git a/webpack.dev.js b/webpack.dev.js
index 798f34ef4ff..97295dd4ea4 100644
--- a/webpack.dev.js
+++ b/webpack.dev.js
@@ -1,9 +1,7 @@
const { merge } = require('webpack-merge')
-const common = require('./webpack.common.js')
+const config = require('./webpack.common.js')
-module.exports = common.map(
- config => merge(config, {
- mode: 'development',
- devtool: 'cheap-source-map',
- })
-)
+module.exports = merge(config, {
+ mode: 'development',
+ devtool: 'cheap-source-map',
+})
diff --git a/webpack.modules.js b/webpack.modules.js
new file mode 100644
index 00000000000..36bec0ca94f
--- /dev/null
+++ b/webpack.modules.js
@@ -0,0 +1,102 @@
+/**
+ * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @author John Molakvoæ <skjnldsv@protonmail.com>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+const path = require('path')
+
+module.exports = {
+ accessibility: {
+ accessibility: path.join(__dirname, 'apps/accessibility/src', 'main.js'),
+ accessibilityoca: path.join(__dirname, 'apps/accessibility/src', 'accessibilityoca.js'),
+ },
+ comments: {
+ comments: path.join(__dirname, 'apps/comments/src', 'comments.js'),
+ 'comments-app': path.join(__dirname, 'apps/comments/src', 'comments-app.js'),
+ 'comments-tab': path.join(__dirname, 'apps/comments/src', 'comments-tab.js'),
+ },
+ core: {
+ files_client: path.join(__dirname, 'core/src', 'files/client.js'),
+ files_fileinfo: path.join(__dirname, 'core/src', 'files/fileinfo.js'),
+ files_iedavclient: path.join(__dirname, 'core/src', 'files/iedavclient.js'),
+ install: path.join(__dirname, 'core/src', 'install.js'),
+ login: path.join(__dirname, 'core/src', 'login.js'),
+ main: path.join(__dirname, 'core/src', 'main.js'),
+ maintenance: path.join(__dirname, 'core/src', 'maintenance.js'),
+ recommendedapps: path.join(__dirname, 'core/src', 'recommendedapps.js'),
+ 'unified-search': path.join(__dirname, 'core/src', 'unified-search.js'),
+ systemtags: path.resolve(__dirname, 'core/src', 'systemtags/merged-systemtags.js'),
+ },
+ dashboard: {
+ 'dashboard-main': path.join(__dirname, 'apps/dashboard/src', 'main.js'),
+ },
+ dav: {
+ 'settings-admin-caldav': path.join(__dirname, 'apps/dav/src', 'settings.js'),
+ },
+ files: {
+ sidebar: path.join(__dirname, 'apps/files/src', 'sidebar.js'),
+ templates: path.join(__dirname, 'apps/files/src', 'templates.js'),
+ 'files-app-settings': path.join(__dirname, 'apps/files/src', 'files-app-settings.js'),
+ 'personal-settings': path.join(__dirname, 'apps/files/src', 'main-personal-settings.js'),
+ },
+ files_sharing: {
+ additionalScripts: path.join(__dirname, 'apps/files_sharing/src', 'additionalScripts.js'),
+ collaboration: path.join(__dirname, 'apps/files_sharing/src', 'collaborationresourceshandler.js'),
+ files_sharing_tab: path.join(__dirname, 'apps/files_sharing/src', 'files_sharing_tab.js'),
+ files_sharing: path.join(__dirname, 'apps/files_sharing/src', 'files_sharing.js'),
+ main: path.join(__dirname, 'apps/files_sharing/src', 'index.js'),
+ 'personal-settings': path.join(__dirname, 'apps/files_sharing/src', 'personal-settings.js'),
+ },
+ files_trashbin: {
+ files_trashbin: path.join(__dirname, 'apps/files_trashbin/src', 'files_trashbin.js'),
+ },
+ files_versions: {
+ files_versions: path.join(__dirname, 'apps/files_versions/src', 'files_versions.js'),
+ },
+ oauth2: {
+ oauth2: path.join(__dirname, 'apps/oauth2/src', 'main.js'),
+ },
+ settings: {
+ 'settings-apps-users-management': path.join(__dirname, 'apps/settings/src', 'main-apps-users-management.js'),
+ 'settings-admin-security': path.join(__dirname, 'apps/settings/src', 'main-admin-security.js'),
+ 'settings-personal-security': path.join(__dirname, 'apps/settings/src', 'main-personal-security.js'),
+ 'settings-personal-webauthn': path.join(__dirname, 'apps/settings/src', 'main-personal-webauth.js'),
+ 'settings-nextcloud-pdf': path.join(__dirname, 'apps/settings/src', 'main-nextcloud-pdf.js'),
+ 'settings-personal-info': path.join(__dirname, 'apps/settings/src', 'main-personal-info.js'),
+ },
+ systemtags: {
+ systemtags: path.join(__dirname, 'apps/systemtags/src', 'systemtags.js'),
+ },
+ user_status: {
+ 'user_status-dashboard': path.join(__dirname, 'apps/user_status/src', 'dashboard.js'),
+ 'user_status-menu': path.join(__dirname, 'apps/user_status/src', 'main-user-status-menu.js'),
+ },
+ weather_status: {
+ 'weather-status': path.join(__dirname, 'apps/weather_status/src', 'weather-status.js'),
+ },
+ twofactor_backupscodes: {
+ settings: path.join(__dirname, 'apps/twofactor_backupcodes/src', 'settings.js'),
+ },
+ updatenotification: {
+ updatenotification: path.join(__dirname, 'apps/updatenotification/src', 'init.js'),
+ },
+ workflowengine: {
+ workflowengine: path.join(__dirname, 'apps/workflowengine/src', 'workflowengine.js'),
+ },
+}
diff --git a/webpack.prod.js b/webpack.prod.js
index e0597e595c6..3c8b032d17f 100644
--- a/webpack.prod.js
+++ b/webpack.prod.js
@@ -1,9 +1,7 @@
const { merge } = require('webpack-merge')
-const common = require('./webpack.common.js')
+const config = require('./webpack.common.js')
-module.exports = common.map(
- config => merge(config, {
- mode: 'production',
- devtool: 'source-map',
- })
-)
+module.exports = merge(config, {
+ mode: 'production',
+ devtool: 'source-map',
+})