@workleap/webpack-configs 1.3.2 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @workleap/webpack-configs
2
2
 
3
+ ## 1.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#183](https://github.com/gsoft-inc/wl-web-configs/pull/183) [`77128e6`](https://github.com/gsoft-inc/wl-web-configs/commit/77128e666574333035e6bb077fc1982f327751eb) Thanks [@patricklafrance](https://github.com/patricklafrance)! - Added a "readable" option to Webpack optimize option.
8
+
3
9
  ## 1.3.2
4
10
 
5
11
  ### Patch Changes
package/dist/build.d.ts CHANGED
@@ -8,6 +8,9 @@ import { WebpackConfigTransformer } from './transformers/applyTransformers.js';
8
8
  declare function defineBuildHtmlWebpackPluginConfig(options?: HtmlWebpackPlugin.Options): HtmlWebpackPlugin.Options;
9
9
  type MiniCssExtractPluginOptions = NonNullable<ConstructorParameters<typeof MiniCssExtractPlugin>[number]>;
10
10
  declare function defineMiniCssExtractPluginConfig(options?: MiniCssExtractPluginOptions): MiniCssExtractPluginOptions;
11
+ type WebpackOptimization = NonNullable<Configuration["optimization"]>;
12
+ type OptimizeOption = boolean | "readable";
13
+ declare function getOptimizationConfig(optimize: OptimizeOption): WebpackOptimization;
11
14
  interface DefineBuildConfigOptions {
12
15
  entry?: string;
13
16
  outputPath?: string;
@@ -18,7 +21,7 @@ interface DefineBuildConfigOptions {
18
21
  plugins?: Configuration["plugins"];
19
22
  htmlWebpackPlugin?: boolean | HtmlWebpackPlugin.Options;
20
23
  miniCssExtractPluginOptions?: MiniCssExtractPluginOptions;
21
- optimize?: boolean;
24
+ optimize?: OptimizeOption;
22
25
  cssModules?: boolean;
23
26
  svgr?: boolean | Config;
24
27
  environmentVariables?: Record<string, unknown>;
@@ -27,4 +30,4 @@ interface DefineBuildConfigOptions {
27
30
  }
28
31
  declare function defineBuildConfig(swcConfig: Config$1, options?: DefineBuildConfigOptions): Configuration;
29
32
 
30
- export { type DefineBuildConfigOptions, defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig };
33
+ export { type DefineBuildConfigOptions, type OptimizeOption, type WebpackOptimization, defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig, getOptimizationConfig };
package/dist/build.js CHANGED
@@ -1,3 +1,3 @@
1
- export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig } from './chunk-DUMBWXNP.js';
1
+ export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig, getOptimizationConfig } from './chunk-YYPUNR23.js';
2
2
  import './chunk-2YARCRX5.js';
3
3
  import './chunk-QJI26K46.js';
@@ -31,6 +31,55 @@ function defineMiniCssExtractPluginConfig(options = {}) {
31
31
  filename
32
32
  };
33
33
  }
34
+ function getOptimizationConfig(optimize) {
35
+ if (optimize === "readable") {
36
+ return {
37
+ minimize: true,
38
+ minimizer: [
39
+ new TerserPlugin({
40
+ minify: TerserPlugin.swcMinify,
41
+ terserOptions: {
42
+ toplevel: true,
43
+ mangle: false,
44
+ keep_classnames: true,
45
+ keep_fnames: true,
46
+ compress: {
47
+ toplevel: true,
48
+ hoist_props: false
49
+ },
50
+ output: {
51
+ comments: true
52
+ }
53
+ }
54
+ })
55
+ ],
56
+ chunkIds: "named",
57
+ moduleIds: "named",
58
+ mangleExports: false,
59
+ mangleWasmImports: false
60
+ };
61
+ } else if (optimize) {
62
+ return {
63
+ minimize: true,
64
+ minimizer: [
65
+ new TerserPlugin({
66
+ minify: TerserPlugin.swcMinify
67
+ })
68
+ ]
69
+ };
70
+ }
71
+ return {
72
+ minimize: false,
73
+ chunkIds: "named",
74
+ moduleIds: "named",
75
+ concatenateModules: false,
76
+ flagIncludedChunks: false,
77
+ mangleExports: false,
78
+ mangleWasmImports: false,
79
+ removeAvailableModules: false,
80
+ usedExports: false
81
+ };
82
+ }
34
83
  function defineBuildConfig(swcConfig, options = {}) {
35
84
  const {
36
85
  entry = path.resolve("./src/index.tsx"),
@@ -93,27 +142,7 @@ function defineBuildConfig(swcConfig, options = {}) {
93
142
  timestamp: true
94
143
  }
95
144
  } : void 0,
96
- optimization: optimize ? {
97
- minimize: true,
98
- minimizer: [
99
- new TerserPlugin({
100
- minify: TerserPlugin.swcMinify,
101
- terserOptions: {
102
- compress: true,
103
- mangle: true
104
- }
105
- })
106
- ]
107
- } : {
108
- minimize: false,
109
- chunkIds: "named",
110
- concatenateModules: false,
111
- flagIncludedChunks: false,
112
- mangleExports: false,
113
- mangleWasmImports: false,
114
- moduleIds: "named",
115
- removeAvailableModules: false
116
- },
145
+ optimization: getOptimizationConfig(optimize),
117
146
  infrastructureLogging: verbose ? {
118
147
  appendOnly: true,
119
148
  level: "verbose",
@@ -199,4 +228,4 @@ function defineBuildConfig(swcConfig, options = {}) {
199
228
  return transformedConfig;
200
229
  }
201
230
 
202
- export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig };
231
+ export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig, getOptimizationConfig };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Configuration as WebpackConfig } from 'webpack';
2
- export { DefineBuildConfigOptions, defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig } from './build.js';
2
+ export { DefineBuildConfigOptions, OptimizeOption, WebpackOptimization, defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig, getOptimizationConfig } from './build.js';
3
3
  export { DefineDevConfigOptions, defineDevConfig, defineDevHtmlWebpackPluginConfig, defineFastRefreshPluginConfig } from './dev.js';
4
4
  export { WebpackConfigTransformer, WebpackConfigTransformerContext } from './transformers/applyTransformers.js';
5
5
  export { AssetModuleType, ModuleRuleMatch, ModuleRuleMatcher, WithModuleRuleMatcherInfo, addAfterModuleRule, addBeforeModuleRule, findModuleRule, findModuleRules, matchAssetModuleType, matchLoaderName, matchTest, removeModuleRules, replaceModuleRule } from './transformers/moduleRules.js';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig } from './chunk-DUMBWXNP.js';
1
+ export { defineBuildConfig, defineBuildHtmlWebpackPluginConfig, defineMiniCssExtractPluginConfig, getOptimizationConfig } from './chunk-YYPUNR23.js';
2
2
  export { defineDevConfig, defineDevHtmlWebpackPluginConfig, defineFastRefreshPluginConfig } from './chunk-DGIXJARR.js';
3
3
  import './chunk-2YARCRX5.js';
4
4
  import './chunk-QJI26K46.js';
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@workleap/webpack-configs",
3
3
  "author": "Workleap",
4
4
  "description": "Workleap recommended webpack config.",
5
- "version": "1.3.2",
5
+ "version": "1.4.0",
6
6
  "license": "Apache-2.0",
7
7
  "keywords": [
8
8
  "workleap",
@@ -56,10 +56,10 @@
56
56
  "typescript": "5.3.3",
57
57
  "webpack": "5.90.1",
58
58
  "webpack-dev-server": "5.0.1",
59
- "@workleap/eslint-plugin": "3.0.2",
60
59
  "@workleap/swc-configs": "2.2.2",
61
- "@workleap/tsup-configs": "3.0.3",
62
- "@workleap/typescript-configs": "3.0.2"
60
+ "@workleap/eslint-plugin": "3.0.2",
61
+ "@workleap/typescript-configs": "3.0.2",
62
+ "@workleap/tsup-configs": "3.0.4"
63
63
  },
64
64
  "dependencies": {
65
65
  "@pmmmwh/react-refresh-webpack-plugin": "0.5.11",