|
|
|
|
@ -1,3 +1,4 @@
|
|
|
|
|
/* eslint-disable n/no-extraneous-require */
|
|
|
|
|
/* eslint-disable camelcase */
|
|
|
|
|
/**
|
|
|
|
|
* SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors
|
|
|
|
|
@ -16,6 +17,7 @@ const WebpackSPDXPlugin = require('./build/WebpackSPDXPlugin.js')
|
|
|
|
|
const modules = require('./webpack.modules.js')
|
|
|
|
|
|
|
|
|
|
const appVersion = readFileSync('./version.php').toString().match(/OC_VersionString[^']+'([^']+)/)?.[1] ?? 'unknown'
|
|
|
|
|
const isDev = process.env.NODE_ENV === 'development'
|
|
|
|
|
|
|
|
|
|
const formatOutputFromModules = (modules) => {
|
|
|
|
|
// merge all configs into one object, and use AppID to generate the fileNames
|
|
|
|
|
@ -48,7 +50,7 @@ const modulesToBuild = () => {
|
|
|
|
|
return formatOutputFromModules(modules)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
|
const config = {
|
|
|
|
|
entry: modulesToBuild(),
|
|
|
|
|
output: {
|
|
|
|
|
// Step away from the src folder and extract to the js folder
|
|
|
|
|
@ -149,23 +151,6 @@ module.exports = {
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
optimization: {
|
|
|
|
|
minimizer: [{
|
|
|
|
|
apply: (compiler) => {
|
|
|
|
|
// Lazy load the Terser plugin
|
|
|
|
|
const TerserPlugin = require('terser-webpack-plugin')
|
|
|
|
|
new TerserPlugin({
|
|
|
|
|
extractComments: false,
|
|
|
|
|
terserOptions: {
|
|
|
|
|
format: {
|
|
|
|
|
comments: false,
|
|
|
|
|
},
|
|
|
|
|
compress: {
|
|
|
|
|
passes: 2,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}).apply(compiler)
|
|
|
|
|
},
|
|
|
|
|
}],
|
|
|
|
|
splitChunks: {
|
|
|
|
|
automaticNameDelimiter: '-',
|
|
|
|
|
minChunks: 3, // minimum number of chunks that must share the module
|
|
|
|
|
@ -238,16 +223,6 @@ module.exports = {
|
|
|
|
|
resourceRegExp: /^\.\/locale$/,
|
|
|
|
|
contextRegExp: /moment\/min$/,
|
|
|
|
|
}),
|
|
|
|
|
|
|
|
|
|
// Generate reuse license files
|
|
|
|
|
new WebpackSPDXPlugin({
|
|
|
|
|
override: {
|
|
|
|
|
select2: 'MIT',
|
|
|
|
|
'@nextcloud/axios': 'GPL-3.0-or-later',
|
|
|
|
|
'@nextcloud/vue': 'AGPL-3.0-or-later',
|
|
|
|
|
'nextcloud-vue-collections': 'AGPL-3.0-or-later',
|
|
|
|
|
}
|
|
|
|
|
}),
|
|
|
|
|
],
|
|
|
|
|
externals: {
|
|
|
|
|
OC: 'OC',
|
|
|
|
|
@ -274,3 +249,35 @@ module.exports = {
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Generate reuse license files if not in development mode
|
|
|
|
|
if (!isDev) {
|
|
|
|
|
config.plugins.push(new WebpackSPDXPlugin({
|
|
|
|
|
override: {
|
|
|
|
|
select2: 'MIT',
|
|
|
|
|
'@nextcloud/axios': 'GPL-3.0-or-later',
|
|
|
|
|
'@nextcloud/vue': 'AGPL-3.0-or-later',
|
|
|
|
|
'nextcloud-vue-collections': 'AGPL-3.0-or-later',
|
|
|
|
|
},
|
|
|
|
|
}))
|
|
|
|
|
|
|
|
|
|
config.optimization.minimizer = [{
|
|
|
|
|
apply: (compiler) => {
|
|
|
|
|
// Lazy load the Terser plugin
|
|
|
|
|
const TerserPlugin = require('terser-webpack-plugin')
|
|
|
|
|
new TerserPlugin({
|
|
|
|
|
extractComments: false,
|
|
|
|
|
terserOptions: {
|
|
|
|
|
format: {
|
|
|
|
|
comments: false,
|
|
|
|
|
},
|
|
|
|
|
compress: {
|
|
|
|
|
passes: 2,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}).apply(compiler)
|
|
|
|
|
},
|
|
|
|
|
}]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
module.exports = config
|
|
|
|
|
|