From a4e3c1335f650d32709b70d3ea689de062681df5 Mon Sep 17 00:00:00 2001 From: ExactlyNoSense Date: Thu, 4 Aug 2022 14:03:03 +0400 Subject: [PATCH 1/5] Add optimize setting into build config `minify` to enable/disable code minification --- config/default.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config/default.js b/config/default.js index 8af6100553..0edd97ee0b 100644 --- a/config/default.js +++ b/config/default.js @@ -475,6 +475,25 @@ module.exports = config.createConfig({dirs: [__dirname, 'client']}, { * Webpack options to optimize build */ optimize: { + /** + * Returns true if code have to be minimized + * + * @cli optimize-minify + * @env OPTIMIZE_MINIFY + * + * @returns {boolean} + */ + minify() { + const + mode = require('@config/config').webpack.mode(); + + return o('optimize-minify', { + env: true, + type: 'boolean', + default: mode === 'production' + }); + }, + /** * The minimum size of a chunk file in bytes that can be separated into a single file * From e0243e70dc7ca26a56613f83688c30a5851982eb Mon Sep 17 00:00:00 2001 From: ExactlyNoSense Date: Thu, 4 Aug 2022 14:03:39 +0400 Subject: [PATCH 2/5] Use build config minify setting in webpack optimization --- build/webpack/optimization.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build/webpack/optimization.js b/build/webpack/optimization.js index b114a60d0e..005526715c 100644 --- a/build/webpack/optimization.js +++ b/build/webpack/optimization.js @@ -107,5 +107,7 @@ module.exports = function optimization({buildId, plugins}) { /* eslint-enable camelcase */ ]; + opts.minimize = optimize.minify(); + return opts; }; From 5a19b18259a0af866bb6955d49c47707fe4fb7e0 Mon Sep 17 00:00:00 2001 From: ExactlyNoSense Date: Thu, 4 Aug 2022 14:08:58 +0400 Subject: [PATCH 3/5] :memo: CHANGELOG --- CHANGELOG.md | 7 +++++++ build/webpack/CHANGELOG.md | 6 ++++++ config/CHANGELOG.md | 6 ++++++ 3 files changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c320a3a059..c061b94e5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,13 @@ Changelog _Note: Gaps between patch versions are faulty, broken or test releases._ +## v3.??.?? (2022-08-??) + +#### :rocket: New Feature + +* Added new method `minify` to `webpack.optimize` object `config/default` +* Added ability to enable or disable code minification `build/webpack/optimization` + ## v3.??.? (2022-??-??) #### :house: Internal diff --git a/build/webpack/CHANGELOG.md b/build/webpack/CHANGELOG.md index 4c59aeba50..8f22dab07f 100644 --- a/build/webpack/CHANGELOG.md +++ b/build/webpack/CHANGELOG.md @@ -9,6 +9,12 @@ Changelog > - :house: [Internal] > - :nail_care: [Polish] +## v3.??.?? (2022-08-??) + +#### :rocket: New Feature + +* Added ability to enable or disable code minification `build/webpack/optimization` + ## v3.24.0 (2022-08-12) #### :rocket: New Feature diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 024b8e1947..5befb9e65f 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -9,6 +9,12 @@ Changelog > - :house: [Internal] > - :nail_care: [Polish] +## v3.??.?? (2022-08-??) + +#### :rocket: New Feature + +* Added new method `minify` to `webpack.optimize` object + ## v3.20.0 (2022-04-25) #### :boom: Breaking Change From 66b7318ec9cd080df11fcbc489eeb0dbd283824d Mon Sep 17 00:00:00 2001 From: ExactlyNoSense Date: Tue, 16 Aug 2022 10:55:01 +0400 Subject: [PATCH 4/5] Changed flag to 'debug-mode' that change not only minimize setting --- build/webpack/optimization.js | 7 ++++++- config/default.js | 32 +++++++++++++------------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/build/webpack/optimization.js b/build/webpack/optimization.js index 005526715c..143abc294a 100644 --- a/build/webpack/optimization.js +++ b/build/webpack/optimization.js @@ -107,7 +107,12 @@ module.exports = function optimization({buildId, plugins}) { /* eslint-enable camelcase */ ]; - opts.minimize = optimize.minify(); + if (config.build.debugMode) { + opts.minimize = false; + opts.chunkIds = 'named'; + opts.moduleIds = 'named'; + opts.mangleExports = false; + } return opts; }; diff --git a/config/default.js b/config/default.js index 0edd97ee0b..64d31b00cb 100644 --- a/config/default.js +++ b/config/default.js @@ -304,6 +304,19 @@ module.exports = config.createConfig({dirs: [__dirname, 'client']}, { suit: o('suit', { env: true, default: 'demo' + }), + + /** + * If true, all code optimizations will be disabled which is suitable for application debugging + * + * @cli debug-mode + * @env DEBUG_MODE + * + * @returns {boolean} + */ + debugMode: o('debug-mode', { + env: true, + type: 'boolean' }) }, @@ -475,25 +488,6 @@ module.exports = config.createConfig({dirs: [__dirname, 'client']}, { * Webpack options to optimize build */ optimize: { - /** - * Returns true if code have to be minimized - * - * @cli optimize-minify - * @env OPTIMIZE_MINIFY - * - * @returns {boolean} - */ - minify() { - const - mode = require('@config/config').webpack.mode(); - - return o('optimize-minify', { - env: true, - type: 'boolean', - default: mode === 'production' - }); - }, - /** * The minimum size of a chunk file in bytes that can be separated into a single file * From 54d216f0d8d4a37d10e370be5295d42bceac3ce0 Mon Sep 17 00:00:00 2001 From: ExactlyNoSense Date: Tue, 16 Aug 2022 10:58:22 +0400 Subject: [PATCH 5/5] :memo: CHANGELOG --- CHANGELOG.md | 4 ++-- build/webpack/CHANGELOG.md | 2 +- config/CHANGELOG.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c061b94e5c..ddbba43592 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,8 +15,8 @@ _Note: Gaps between patch versions are faulty, broken or test releases._ #### :rocket: New Feature -* Added new method `minify` to `webpack.optimize` object `config/default` -* Added ability to enable or disable code minification `build/webpack/optimization` +* Added new property `debugMode` to `build` object `config/default` +* Added ability to disable code optimizations for debug mode `build/webpack/optimization` ## v3.??.? (2022-??-??) diff --git a/build/webpack/CHANGELOG.md b/build/webpack/CHANGELOG.md index 8f22dab07f..da3e40f650 100644 --- a/build/webpack/CHANGELOG.md +++ b/build/webpack/CHANGELOG.md @@ -13,7 +13,7 @@ Changelog #### :rocket: New Feature -* Added ability to enable or disable code minification `build/webpack/optimization` +* Added ability to disable code optimizations for debug mode `build/webpack/optimization` ## v3.24.0 (2022-08-12) diff --git a/config/CHANGELOG.md b/config/CHANGELOG.md index 5befb9e65f..8ad679be70 100644 --- a/config/CHANGELOG.md +++ b/config/CHANGELOG.md @@ -13,7 +13,7 @@ Changelog #### :rocket: New Feature -* Added new method `minify` to `webpack.optimize` object +* Added new property `debugMode` to `build` object ## v3.20.0 (2022-04-25)