@tramvai/cli 5.53.81 → 5.53.94

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.
Files changed (149) hide show
  1. package/README.md +1 -1
  2. package/lib/api/analyze/index.d.ts.map +1 -1
  3. package/lib/api/analyze/index.js +1 -13
  4. package/lib/api/analyze/index.js.map +1 -1
  5. package/lib/api/benchmark/build.d.ts +1 -6
  6. package/lib/api/benchmark/build.d.ts.map +1 -1
  7. package/lib/api/benchmark/build.js +59 -23
  8. package/lib/api/benchmark/build.js.map +1 -1
  9. package/lib/api/benchmark/const.d.ts +2 -0
  10. package/lib/api/benchmark/const.d.ts.map +1 -0
  11. package/lib/api/benchmark/const.js +5 -0
  12. package/lib/api/benchmark/const.js.map +1 -0
  13. package/lib/api/benchmark/index.d.ts +4 -6
  14. package/lib/api/benchmark/index.d.ts.map +1 -1
  15. package/lib/api/benchmark/index.js.map +1 -1
  16. package/lib/api/benchmark/start.d.ts +1 -7
  17. package/lib/api/benchmark/start.d.ts.map +1 -1
  18. package/lib/api/benchmark/start.js +56 -49
  19. package/lib/api/benchmark/start.js.map +1 -1
  20. package/lib/api/benchmark/types.d.ts +76 -12
  21. package/lib/api/benchmark/types.d.ts.map +1 -1
  22. package/lib/api/benchmark/utils/compilationUtils.d.ts +4 -0
  23. package/lib/api/benchmark/utils/compilationUtils.d.ts.map +1 -0
  24. package/lib/api/benchmark/utils/compilationUtils.js +157 -0
  25. package/lib/api/benchmark/utils/compilationUtils.js.map +1 -0
  26. package/lib/api/benchmark/utils/stats.d.ts +2 -7
  27. package/lib/api/benchmark/utils/stats.d.ts.map +1 -1
  28. package/lib/api/benchmark/utils/stats.js +36 -22
  29. package/lib/api/benchmark/utils/stats.js.map +1 -1
  30. package/lib/api/build/index.d.ts +1 -0
  31. package/lib/api/build/index.d.ts.map +1 -1
  32. package/lib/api/build/index.js.map +1 -1
  33. package/lib/api/index.js +1 -1
  34. package/lib/api/index.js.map +1 -1
  35. package/lib/api/start/index.d.ts +1 -0
  36. package/lib/api/start/index.d.ts.map +1 -1
  37. package/lib/api/start/index.js.map +1 -1
  38. package/lib/builder/webpack/analyzePlugins/rsdoctor.d.ts +5 -5
  39. package/lib/builder/webpack/analyzePlugins/rsdoctor.d.ts.map +1 -1
  40. package/lib/builder/webpack/analyzePlugins/rsdoctor.js +7 -9
  41. package/lib/builder/webpack/analyzePlugins/rsdoctor.js.map +1 -1
  42. package/lib/builder/webpack/index.d.ts.map +1 -1
  43. package/lib/builder/webpack/index.js +14 -12
  44. package/lib/builder/webpack/index.js.map +1 -1
  45. package/lib/builder/webpack/providers/build/client.d.ts.map +1 -1
  46. package/lib/builder/webpack/providers/build/client.js +3 -2
  47. package/lib/builder/webpack/providers/build/client.js.map +1 -1
  48. package/lib/builder/webpack/providers/build/server.d.ts.map +1 -1
  49. package/lib/builder/webpack/providers/build/server.js +3 -2
  50. package/lib/builder/webpack/providers/build/server.js.map +1 -1
  51. package/lib/builder/webpack/providers/shared.d.ts.map +1 -1
  52. package/lib/builder/webpack/providers/shared.js +39 -5
  53. package/lib/builder/webpack/providers/shared.js.map +1 -1
  54. package/lib/builder/webpack/providers/start/shared.d.ts.map +1 -1
  55. package/lib/builder/webpack/providers/start/shared.js +6 -2
  56. package/lib/builder/webpack/providers/start/shared.js.map +1 -1
  57. package/lib/builder/webpack/tokens.d.ts +8 -16
  58. package/lib/builder/webpack/tokens.d.ts.map +1 -1
  59. package/lib/cli/index.d.ts.map +1 -1
  60. package/lib/cli/index.js +12 -12
  61. package/lib/cli/index.js.map +1 -1
  62. package/lib/commands/analyze/command.d.ts +1 -1
  63. package/lib/commands/analyze/command.d.ts.map +1 -1
  64. package/lib/commands/benchmark/benchmark.d.ts +3 -1
  65. package/lib/commands/benchmark/benchmark.d.ts.map +1 -1
  66. package/lib/commands/benchmark/benchmark.js +130 -31
  67. package/lib/commands/benchmark/benchmark.js.map +1 -1
  68. package/lib/commands/benchmark/command.d.ts +9 -0
  69. package/lib/commands/benchmark/command.d.ts.map +1 -1
  70. package/lib/commands/benchmark/command.js +12 -0
  71. package/lib/commands/benchmark/command.js.map +1 -1
  72. package/lib/commands/build/command.d.ts.map +1 -1
  73. package/lib/commands/build/command.js +5 -0
  74. package/lib/commands/build/command.js.map +1 -1
  75. package/lib/commands/start/command.d.ts.map +1 -1
  76. package/lib/commands/start/command.js +5 -0
  77. package/lib/commands/start/command.js.map +1 -1
  78. package/lib/config/configManager.d.ts +2 -0
  79. package/lib/config/configManager.d.ts.map +1 -1
  80. package/lib/config/configManager.js +2 -0
  81. package/lib/config/configManager.js.map +1 -1
  82. package/lib/di/tokens/config.d.ts +4 -8
  83. package/lib/di/tokens/config.d.ts.map +1 -1
  84. package/lib/library/webpack/blocks/js.d.ts.map +1 -1
  85. package/lib/library/webpack/blocks/js.js +57 -11
  86. package/lib/library/webpack/blocks/js.js.map +1 -1
  87. package/lib/library/webpack/common/main.d.ts.map +1 -1
  88. package/lib/library/webpack/common/main.js +7 -0
  89. package/lib/library/webpack/common/main.js.map +1 -1
  90. package/lib/library/webpack/utils/rsdoctor.d.ts +2 -0
  91. package/lib/library/webpack/utils/rsdoctor.d.ts.map +1 -0
  92. package/lib/library/webpack/utils/rsdoctor.js +27 -0
  93. package/lib/library/webpack/utils/rsdoctor.js.map +1 -0
  94. package/lib/library/webpack/utils/threadLoader.d.ts.map +1 -1
  95. package/lib/library/webpack/utils/threadLoader.js +3 -3
  96. package/lib/library/webpack/utils/threadLoader.js.map +1 -1
  97. package/lib/schema/autogeneratedSchema.json +228 -120
  98. package/lib/typings/build/Builder.d.ts +6 -2
  99. package/lib/typings/build/Builder.d.ts.map +1 -1
  100. package/lib/typings/configEntry/cli.d.ts +5 -0
  101. package/lib/typings/configEntry/cli.d.ts.map +1 -1
  102. package/package.json +16 -17
  103. package/schema.json +228 -120
  104. package/src/api/analyze/index.ts +3 -16
  105. package/src/api/benchmark/__integration__/start.test.ts +10 -12
  106. package/src/api/benchmark/build.ts +75 -30
  107. package/src/api/benchmark/const.ts +1 -0
  108. package/src/api/benchmark/index.ts +4 -6
  109. package/src/api/benchmark/start.ts +69 -65
  110. package/src/api/benchmark/types.ts +82 -14
  111. package/src/api/benchmark/utils/compilationUtils.ts +213 -0
  112. package/src/api/benchmark/utils/stats.ts +45 -28
  113. package/src/api/build/index.ts +1 -0
  114. package/src/api/index.ts +1 -1
  115. package/src/api/start/index.ts +1 -0
  116. package/src/builder/webpack/analyzePlugins/rsdoctor.ts +11 -14
  117. package/src/builder/webpack/index.ts +16 -21
  118. package/src/builder/webpack/providers/build/client.ts +7 -2
  119. package/src/builder/webpack/providers/build/server.ts +7 -2
  120. package/src/builder/webpack/providers/shared.ts +53 -5
  121. package/src/builder/webpack/providers/start/shared.ts +7 -2
  122. package/src/cli/index.ts +3 -2
  123. package/src/commands/analyze/command.ts +1 -1
  124. package/src/commands/benchmark/benchmark.ts +168 -33
  125. package/src/commands/benchmark/command.ts +12 -0
  126. package/src/commands/build/command.ts +6 -0
  127. package/src/commands/new/templates/shared/package.json.hbs +1 -1
  128. package/src/commands/start/command.ts +6 -0
  129. package/src/config/configManager.ts +4 -0
  130. package/src/library/webpack/blocks/js.ts +61 -12
  131. package/src/library/webpack/common/main.ts +8 -0
  132. package/src/library/webpack/utils/rsdoctor.ts +26 -0
  133. package/src/library/webpack/utils/threadLoader.ts +1 -0
  134. package/src/models/config.spec.ts +4 -0
  135. package/src/schema/autogeneratedSchema.json +228 -120
  136. package/src/schema/tramvai.spec.ts +2 -0
  137. package/src/typings/build/Builder.ts +7 -2
  138. package/src/typings/configEntry/cli.ts +6 -0
  139. package/lib/api/analyze/providers/shared.d.ts +0 -3
  140. package/lib/api/analyze/providers/shared.d.ts.map +0 -1
  141. package/lib/api/analyze/providers/shared.js +0 -23
  142. package/lib/api/analyze/providers/shared.js.map +0 -1
  143. package/lib/builder/webpack/providers/analyze/shared.d.ts +0 -3
  144. package/lib/builder/webpack/providers/analyze/shared.d.ts.map +0 -1
  145. package/lib/builder/webpack/providers/analyze/shared.js +0 -141
  146. package/lib/builder/webpack/providers/analyze/shared.js.map +0 -1
  147. package/src/api/analyze/providers/shared.ts +0 -26
  148. package/src/api/benchmark/utils/stats.spec.ts +0 -36
  149. package/src/builder/webpack/providers/analyze/shared.ts +0 -160
@@ -1,141 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.analyzeSharedProviders = void 0;
4
- const tslib_1 = require("tslib");
5
- const dippy_1 = require("@tinkoff/dippy");
6
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
- const rimraf_1 = tslib_1.__importDefault(require("rimraf"));
8
- const webpack_1 = tslib_1.__importDefault(require("webpack"));
9
- const tokens_1 = require("../../../../di/tokens");
10
- const toWebpackConfig_1 = require("../../../../library/webpack/utils/toWebpackConfig");
11
- const npmRequire_1 = require("../../../../utils/npmRequire");
12
- const bundle_1 = require("../../analyzePlugins/bundle");
13
- const statoscope_1 = require("../../analyzePlugins/statoscope");
14
- const whyBundled_1 = require("../../analyzePlugins/whyBundled");
15
- const rsdoctor_1 = require("../../analyzePlugins/rsdoctor");
16
- const tokens_2 = require("../../tokens");
17
- const runWebpack_1 = require("../../utils/runWebpack");
18
- const pluginMap = {
19
- bundle: bundle_1.BundleAnalyzePlugin,
20
- whybundled: whyBundled_1.WhyBundledAnalyzePlugin,
21
- statoscope: statoscope_1.StatoscopeAnalyzePlugin,
22
- rsdoctor: rsdoctor_1.RsdoctorAnalyzePlugin,
23
- };
24
- exports.analyzeSharedProviders = [
25
- (0, dippy_1.provide)({
26
- provide: tokens_2.WEBPACK_ANALYZE_PLUGIN_TOKEN,
27
- useFactory: ({ pluginName }) => {
28
- const PluginClass = pluginMap[pluginName];
29
- if (!PluginClass) {
30
- throw new Error('Set correct plugin option');
31
- }
32
- return new PluginClass();
33
- },
34
- deps: {
35
- pluginName: tokens_2.WEBPACK_ANALYZE_PLUGIN_NAME_TOKEN,
36
- },
37
- }),
38
- (0, dippy_1.provide)({
39
- provide: tokens_2.CLIENT_CONFIG_MANAGER_TOKEN,
40
- useFactory: ({ configManager }) => {
41
- return configManager.withSettings({
42
- buildType: 'client',
43
- });
44
- },
45
- deps: {
46
- configManager: tokens_1.CONFIG_MANAGER_TOKEN,
47
- },
48
- }),
49
- (0, dippy_1.provide)({
50
- provide: tokens_2.WEBPACK_CLIENT_COMPILER_TOKEN,
51
- useFactory: ({ webpackConfig, analyzePlugin }) => {
52
- return (0, webpack_1.default)((0, toWebpackConfig_1.toWebpackConfig)(analyzePlugin.patchConfig(webpackConfig)));
53
- },
54
- deps: {
55
- webpackConfig: tokens_2.WEBPACK_CLIENT_CONFIG_TOKEN,
56
- analyzePlugin: tokens_2.WEBPACK_ANALYZE_PLUGIN_TOKEN,
57
- },
58
- }),
59
- (0, dippy_1.provide)({
60
- provide: tokens_2.INIT_HANDLER_TOKEN,
61
- multi: true,
62
- useFactory: ({ configManager }) => {
63
- return function clearBuildDir() {
64
- return rimraf_1.default.sync(`${configManager.buildPath}/**`, {});
65
- };
66
- },
67
- deps: {
68
- configManager: tokens_2.CLIENT_CONFIG_MANAGER_TOKEN,
69
- },
70
- }),
71
- (0, dippy_1.provide)({
72
- provide: tokens_2.INIT_HANDLER_TOKEN,
73
- multi: true,
74
- useFactory: ({ configManager, rootDir, packageManager }) => {
75
- return async function prepareImageOptimization() {
76
- if (configManager.imageOptimization?.enabled) {
77
- await (0, npmRequire_1.npmRequire)({
78
- cliRootDir: rootDir,
79
- packageManager,
80
- packageName: 'image-webpack-loader',
81
- description: 'Устанавливаем зависимости для опции imageOptimization',
82
- });
83
- }
84
- };
85
- },
86
- deps: {
87
- configManager: tokens_2.CLIENT_CONFIG_MANAGER_TOKEN,
88
- rootDir: tokens_1.CLI_ROOT_DIR_TOKEN,
89
- packageManager: tokens_1.CLI_PACKAGE_MANAGER,
90
- },
91
- }),
92
- (0, dippy_1.provide)({
93
- provide: tokens_2.INIT_HANDLER_TOKEN,
94
- multi: true,
95
- useFactory: ({ analyzePlugin, rootDir, packageManager }) => {
96
- const { requireDeps } = analyzePlugin;
97
- return async () => {
98
- if (requireDeps) {
99
- await (0, npmRequire_1.npmRequireList)({
100
- cliRootDir: rootDir,
101
- packageManager,
102
- dependencies: requireDeps,
103
- description: 'Install dependencies for the analyze command',
104
- });
105
- }
106
- };
107
- },
108
- deps: {
109
- analyzePlugin: tokens_2.WEBPACK_ANALYZE_PLUGIN_TOKEN,
110
- rootDir: tokens_1.CLI_ROOT_DIR_TOKEN,
111
- packageManager: tokens_1.CLI_PACKAGE_MANAGER,
112
- },
113
- }),
114
- (0, dippy_1.provide)({
115
- provide: tokens_2.PROCESS_HANDLER_TOKEN,
116
- multi: true,
117
- useFactory: ({ webpackCompiler, configManager }) => {
118
- return function webpackBuild() {
119
- console.log(chalk_1.default.green('Starting build with analyze tool'));
120
- return (0, runWebpack_1.runWebpack)(webpackCompiler, { verboseWebpack: configManager.verboseWebpack });
121
- };
122
- },
123
- deps: {
124
- webpackCompiler: tokens_2.WEBPACK_CLIENT_COMPILER_TOKEN,
125
- configManager: tokens_1.CONFIG_MANAGER_TOKEN,
126
- },
127
- }),
128
- (0, dippy_1.provide)({
129
- provide: tokens_2.CLOSE_HANDLER_TOKEN,
130
- multi: true,
131
- useFactory: ({ analyzePlugin }) => {
132
- return () => {
133
- return analyzePlugin.afterBuild();
134
- };
135
- },
136
- deps: {
137
- analyzePlugin: tokens_2.WEBPACK_ANALYZE_PLUGIN_TOKEN,
138
- },
139
- }),
140
- ];
141
- //# sourceMappingURL=shared.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/analyze/shared.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Provider } from '@tinkoff/dippy';
2
- import { provide } from '@tinkoff/dippy';
3
- import {
4
- CONFIG_MANAGER_TOKEN,
5
- COMMAND_PARAMETERS_TOKEN,
6
- CONFIG_ENTRY_TOKEN,
7
- } from '../../../di/tokens';
8
- import { createConfigManager } from '../../../config/configManager';
9
- import type { CliConfigEntry } from '../../../typings/configEntry/cli';
10
-
11
- export const sharedProviders: readonly Provider[] = [
12
- provide({
13
- provide: CONFIG_MANAGER_TOKEN,
14
- useFactory: ({ configEntry, parameters }) => {
15
- return createConfigManager(configEntry as CliConfigEntry, {
16
- ...parameters,
17
- env: 'production',
18
- buildType: 'client',
19
- });
20
- },
21
- deps: {
22
- configEntry: CONFIG_ENTRY_TOKEN,
23
- parameters: COMMAND_PARAMETERS_TOKEN,
24
- },
25
- }),
26
- ];
@@ -1,36 +0,0 @@
1
- import { getSamplesStats } from './stats';
2
-
3
- describe('getSamplesStats', () => {
4
- it('base case', () => {
5
- const samples = [1, 1, 1, 1, 1];
6
-
7
- expect(getSamplesStats(samples)).toEqual({
8
- samples,
9
- mean: 1,
10
- std: 0,
11
- variance: 0,
12
- });
13
- });
14
-
15
- it('case 1', () => {
16
- const samples = [1, 2, 3, 4, 5, 6, 7];
17
-
18
- expect(getSamplesStats(samples)).toEqual({
19
- samples,
20
- mean: 4,
21
- std: 2,
22
- variance: 50,
23
- });
24
- });
25
-
26
- it('case 2', () => {
27
- const samples = [100, 105, 103, 95, 102, 109, 98];
28
-
29
- expect(getSamplesStats(samples)).toEqual({
30
- samples,
31
- mean: 101.71428571428571,
32
- std: 4.266624149448022,
33
- variance: 4.194714753670809,
34
- });
35
- });
36
- });
@@ -1,160 +0,0 @@
1
- import type { Provider } from '@tinkoff/dippy';
2
- import { provide } from '@tinkoff/dippy';
3
- import chalk from 'chalk';
4
- import rimraf from 'rimraf';
5
- import webpack from 'webpack';
6
- import {
7
- CLI_PACKAGE_MANAGER,
8
- CLI_ROOT_DIR_TOKEN,
9
- CONFIG_MANAGER_TOKEN,
10
- } from '../../../../di/tokens';
11
- import { toWebpackConfig } from '../../../../library/webpack/utils/toWebpackConfig';
12
- import { npmRequire, npmRequireList } from '../../../../utils/npmRequire';
13
- import { BundleAnalyzePlugin } from '../../analyzePlugins/bundle';
14
- import { StatoscopeAnalyzePlugin } from '../../analyzePlugins/statoscope';
15
- import { WhyBundledAnalyzePlugin } from '../../analyzePlugins/whyBundled';
16
- import { RsdoctorAnalyzePlugin } from '../../analyzePlugins/rsdoctor';
17
- import {
18
- CLIENT_CONFIG_MANAGER_TOKEN,
19
- INIT_HANDLER_TOKEN,
20
- CLOSE_HANDLER_TOKEN,
21
- PROCESS_HANDLER_TOKEN,
22
- WEBPACK_ANALYZE_PLUGIN_NAME_TOKEN,
23
- WEBPACK_ANALYZE_PLUGIN_TOKEN,
24
- WEBPACK_CLIENT_COMPILER_TOKEN,
25
- WEBPACK_CLIENT_CONFIG_TOKEN,
26
- } from '../../tokens';
27
- import type { AnalyzePlugin } from '../../types';
28
- import { runWebpack } from '../../utils/runWebpack';
29
-
30
- interface Type<T> extends Function {
31
- new (...args: any[]): T;
32
- }
33
-
34
- const pluginMap: Record<string, Type<AnalyzePlugin>> = {
35
- bundle: BundleAnalyzePlugin,
36
- whybundled: WhyBundledAnalyzePlugin,
37
- statoscope: StatoscopeAnalyzePlugin,
38
- rsdoctor: RsdoctorAnalyzePlugin,
39
- };
40
-
41
- export const analyzeSharedProviders: Provider[] = [
42
- provide({
43
- provide: WEBPACK_ANALYZE_PLUGIN_TOKEN,
44
- useFactory: ({ pluginName }) => {
45
- const PluginClass = pluginMap[pluginName];
46
-
47
- if (!PluginClass) {
48
- throw new Error('Set correct plugin option');
49
- }
50
-
51
- return new PluginClass();
52
- },
53
- deps: {
54
- pluginName: WEBPACK_ANALYZE_PLUGIN_NAME_TOKEN,
55
- },
56
- }),
57
- provide({
58
- provide: CLIENT_CONFIG_MANAGER_TOKEN,
59
- useFactory: ({ configManager }) => {
60
- return configManager.withSettings({
61
- buildType: 'client',
62
- });
63
- },
64
- deps: {
65
- configManager: CONFIG_MANAGER_TOKEN,
66
- },
67
- }),
68
- provide({
69
- provide: WEBPACK_CLIENT_COMPILER_TOKEN,
70
- useFactory: ({ webpackConfig, analyzePlugin }) => {
71
- return webpack(toWebpackConfig(analyzePlugin.patchConfig(webpackConfig)));
72
- },
73
- deps: {
74
- webpackConfig: WEBPACK_CLIENT_CONFIG_TOKEN,
75
- analyzePlugin: WEBPACK_ANALYZE_PLUGIN_TOKEN,
76
- },
77
- }),
78
- provide({
79
- provide: INIT_HANDLER_TOKEN,
80
- multi: true,
81
- useFactory: ({ configManager }) => {
82
- return function clearBuildDir() {
83
- return rimraf.sync(`${configManager.buildPath}/**`, {});
84
- };
85
- },
86
- deps: {
87
- configManager: CLIENT_CONFIG_MANAGER_TOKEN,
88
- },
89
- }),
90
- provide({
91
- provide: INIT_HANDLER_TOKEN,
92
- multi: true,
93
- useFactory: ({ configManager, rootDir, packageManager }) => {
94
- return async function prepareImageOptimization() {
95
- if (configManager.imageOptimization?.enabled) {
96
- await npmRequire({
97
- cliRootDir: rootDir,
98
- packageManager,
99
- packageName: 'image-webpack-loader',
100
- description: 'Устанавливаем зависимости для опции imageOptimization',
101
- });
102
- }
103
- };
104
- },
105
- deps: {
106
- configManager: CLIENT_CONFIG_MANAGER_TOKEN,
107
- rootDir: CLI_ROOT_DIR_TOKEN,
108
- packageManager: CLI_PACKAGE_MANAGER,
109
- },
110
- }),
111
- provide({
112
- provide: INIT_HANDLER_TOKEN,
113
- multi: true,
114
- useFactory: ({ analyzePlugin, rootDir, packageManager }) => {
115
- const { requireDeps } = analyzePlugin;
116
-
117
- return async () => {
118
- if (requireDeps) {
119
- await npmRequireList({
120
- cliRootDir: rootDir,
121
- packageManager,
122
- dependencies: requireDeps,
123
- description: 'Install dependencies for the analyze command',
124
- });
125
- }
126
- };
127
- },
128
- deps: {
129
- analyzePlugin: WEBPACK_ANALYZE_PLUGIN_TOKEN,
130
- rootDir: CLI_ROOT_DIR_TOKEN,
131
- packageManager: CLI_PACKAGE_MANAGER,
132
- },
133
- }),
134
- provide({
135
- provide: PROCESS_HANDLER_TOKEN,
136
- multi: true,
137
- useFactory: ({ webpackCompiler, configManager }) => {
138
- return function webpackBuild() {
139
- console.log(chalk.green('Starting build with analyze tool'));
140
- return runWebpack(webpackCompiler, { verboseWebpack: configManager.verboseWebpack });
141
- };
142
- },
143
- deps: {
144
- webpackCompiler: WEBPACK_CLIENT_COMPILER_TOKEN,
145
- configManager: CONFIG_MANAGER_TOKEN,
146
- },
147
- }),
148
- provide({
149
- provide: CLOSE_HANDLER_TOKEN,
150
- multi: true,
151
- useFactory: ({ analyzePlugin }) => {
152
- return () => {
153
- return analyzePlugin.afterBuild();
154
- };
155
- },
156
- deps: {
157
- analyzePlugin: WEBPACK_ANALYZE_PLUGIN_TOKEN,
158
- },
159
- }),
160
- ];