@tramvai/cli 2.124.0 → 2.125.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.
Files changed (37) hide show
  1. package/README.md +12 -0
  2. package/bin/spawn.js +5 -1
  3. package/lib/builder/webpack/tokens.d.ts +15 -3
  4. package/lib/cli/runCLI.js +4 -0
  5. package/lib/cli/runCLI.js.map +1 -1
  6. package/lib/di/tokens/config.d.ts +5 -1
  7. package/lib/library/babel/index.d.ts +1 -9
  8. package/lib/library/babel/index.js +1 -9
  9. package/lib/library/babel/index.js.map +1 -1
  10. package/lib/library/typescript/index.d.ts +0 -4
  11. package/lib/library/typescript/index.js +2 -2
  12. package/lib/library/typescript/index.js.map +1 -1
  13. package/lib/library/webpack/utils/files.d.ts +6 -1
  14. package/lib/library/webpack/utils/files.js +5 -2
  15. package/lib/library/webpack/utils/files.js.map +1 -1
  16. package/lib/library/webpack/utils/threadLoader.js +4 -2
  17. package/lib/library/webpack/utils/threadLoader.js.map +1 -1
  18. package/lib/library/webpack/utils/transpiler.d.ts +0 -1
  19. package/lib/library/webpack/utils/transpiler.js +7 -5
  20. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  21. package/lib/schema/autogeneratedSchema.json +51 -18
  22. package/lib/typings/configEntry/cli.d.ts +5 -1
  23. package/lib/utils/cpu-profile.d.ts +1 -0
  24. package/lib/utils/cpu-profile.js +35 -0
  25. package/lib/utils/cpu-profile.js.map +1 -0
  26. package/package.json +4 -5
  27. package/schema.json +51 -18
  28. package/src/cli/runCLI.ts +5 -0
  29. package/src/library/babel/index.ts +0 -9
  30. package/src/library/typescript/index.ts +2 -2
  31. package/src/library/webpack/utils/files.ts +5 -2
  32. package/src/library/webpack/utils/threadLoader.ts +2 -0
  33. package/src/library/webpack/utils/transpiler.ts +7 -4
  34. package/src/models/config.spec.ts +2 -2
  35. package/src/schema/autogeneratedSchema.json +51 -18
  36. package/src/typings/configEntry/cli.ts +5 -1
  37. package/src/utils/cpu-profile.ts +36 -0
package/README.md CHANGED
@@ -265,3 +265,15 @@ You can use `NODE_OPTIONS` env variable, e.g.:
265
265
  ```bash
266
266
  NODE_OPTIONS="--max_semi_space_size=64" tramvai start-prod {appName}
267
267
  ```
268
+
269
+ ### How to get CPU profile of @tramvai/cli work?
270
+
271
+ Run application server or production buid with env variable `TRAMVAI_CPU_PROFILE`:
272
+
273
+ ```bash
274
+ TRAMVAI_CPU_PROFILE=1 tramvai build {appName}
275
+ ```
276
+
277
+ Then, file with `tramvai-cli.${Date.now()}.cpuprofile` name will be generated in current working directory.
278
+
279
+ You can open this trace in Chrome DevTools - `chrome://inspect`, "Open dedicated DevTools for Node", `Performance` tab.
package/bin/spawn.js CHANGED
@@ -2,7 +2,11 @@ const { spawnSync } = require('child_process');
2
2
 
3
3
  const args = process.argv.slice(2);
4
4
  const maxMemory = process.env.MAX_USED_MEMORY || '3000';
5
- const defaultArgs = [`--max_old_space_size=${maxMemory}`];
5
+ const maxSemiSpaceSize = process.env.MAX_SEMI_SPACE_SIZE || '128';
6
+ const defaultArgs = [
7
+ `--max_old_space_size=${maxMemory}`,
8
+ `--max_semi_space_size=${maxSemiSpaceSize}`,
9
+ ];
6
10
 
7
11
  const paramsIndex = args.findIndex((x) => !x.startsWith('-'));
8
12
  const nodeArgs = paramsIndex > 0 ? args.slice(0, paramsIndex) : [];
@@ -53,7 +53,11 @@ export declare const CLIENT_CONFIG_MANAGER_TOKEN: {
53
53
  [x: string]: any;
54
54
  };
55
55
  svgo?: {
56
- plugins?: any[];
56
+ plugins?: {
57
+ [x: string]: any;
58
+ name: string;
59
+ active: boolean;
60
+ }[];
57
61
  };
58
62
  imageOptimization?: {
59
63
  enabled?: boolean;
@@ -177,7 +181,11 @@ export declare const CLIENT_MODERN_CONFIG_MANAGER_TOKEN: {
177
181
  [x: string]: any;
178
182
  };
179
183
  svgo?: {
180
- plugins?: any[];
184
+ plugins?: {
185
+ [x: string]: any;
186
+ name: string;
187
+ active: boolean;
188
+ }[];
181
189
  };
182
190
  imageOptimization?: {
183
191
  enabled?: boolean;
@@ -301,7 +309,11 @@ export declare const SERVER_CONFIG_MANAGER_TOKEN: {
301
309
  [x: string]: any;
302
310
  };
303
311
  svgo?: {
304
- plugins?: any[];
312
+ plugins?: {
313
+ [x: string]: any;
314
+ name: string;
315
+ active: boolean;
316
+ }[];
305
317
  };
306
318
  imageOptimization?: {
307
319
  enabled?: boolean;
package/lib/cli/runCLI.js CHANGED
@@ -4,11 +4,15 @@ const tslib_1 = require("tslib");
4
4
  const exit_1 = tslib_1.__importDefault(require("exit"));
5
5
  const fixYarnSettingsOverride_1 = require("../utils/fixYarnSettingsOverride");
6
6
  const handleErrors_1 = require("../utils/handleErrors");
7
+ const cpu_profile_1 = require("../utils/cpu-profile");
7
8
  // to use V8's code cache to speed up instantiation time
8
9
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
9
10
  Promise.resolve().then(() => tslib_1.__importStar(require('v8-compile-cache')));
10
11
  (0, handleErrors_1.handleErrors)();
11
12
  (0, fixYarnSettingsOverride_1.fixYarnSettingsOverride)();
13
+ if (process.env.TRAMVAI_CPU_PROFILE) {
14
+ (0, cpu_profile_1.enableCpuProfile)('tramvai-cli');
15
+ }
12
16
  exports.default = (pathCli) => {
13
17
  const cli = require(pathCli).cliInitialized;
14
18
  return cli()
@@ -1 +1 @@
1
- {"version":3,"file":"runCLI.js","sourceRoot":"","sources":["../../src/cli/runCLI.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,8EAA2E;AAC3E,wDAAqD;AAErD,wDAAwD;AACxD,oEAAoE;AACpE,0DAAO,kBAAkB,IAAE;AAE3B,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,iDAAuB,GAAE,CAAC;AAE1B,kBAAe,CAAC,OAAe,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;IAE5C,OAAO,GAAG,EAAE;SACT,IAAI,CAAC,GAAG,EAAE;QACT,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
1
+ {"version":3,"file":"runCLI.js","sourceRoot":"","sources":["../../src/cli/runCLI.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,8EAA2E;AAC3E,wDAAqD;AACrD,sDAAwD;AAExD,wDAAwD;AACxD,oEAAoE;AACpE,0DAAO,kBAAkB,IAAE;AAE3B,IAAA,2BAAY,GAAE,CAAC;AACf,IAAA,iDAAuB,GAAE,CAAC;AAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE;IACnC,IAAA,8BAAgB,EAAC,aAAa,CAAC,CAAC;CACjC;AAED,kBAAe,CAAC,OAAe,EAAE,EAAE;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;IAE5C,OAAO,GAAG,EAAE;SACT,IAAI,CAAC,GAAG,EAAE;QACT,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE;QACV,IAAA,cAAI,EAAC,CAAC,CAAC,CAAC;IACV,CAAC,CAAC,CAAC;AACP,CAAC,CAAC"}
@@ -63,7 +63,11 @@ export declare const CONFIG_MANAGER_TOKEN: {
63
63
  [x: string]: any;
64
64
  };
65
65
  svgo?: {
66
- plugins?: any[];
66
+ plugins?: {
67
+ [x: string]: any;
68
+ name: string;
69
+ active: boolean;
70
+ }[];
67
71
  };
68
72
  imageOptimization?: {
69
73
  enabled?: boolean;
@@ -1,5 +1,5 @@
1
1
  import type { TranspilerConfig } from '../webpack/utils/transpiler';
2
- export declare const babelConfigFactory: ({ env, target, modern, isServer, modules, generateDataQaTag, enableFillActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, alias, tramvai, hot, excludesPresetEnv, rootDir, }: Partial<TranspilerConfig>) => {
2
+ export declare const babelConfigFactory: ({ env, target, modern, isServer, modules, generateDataQaTag, enableFillActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, tramvai, hot, excludesPresetEnv, rootDir, }: Partial<TranspilerConfig>) => {
3
3
  cwd: string;
4
4
  compact: boolean;
5
5
  sourceType: "unambiguous";
@@ -12,10 +12,6 @@ export declare const babelConfigFactory: ({ env, target, modern, isServer, modul
12
12
  useESModules: boolean;
13
13
  })[] | (string | {
14
14
  id: string[];
15
- })[] | (string | {
16
- root: string[];
17
- extensions: string[];
18
- alias: Record<string, any>;
19
15
  })[] | (string | {
20
16
  legacy: boolean;
21
17
  })[] | (string | {
@@ -38,10 +34,6 @@ export declare const babelConfigFactory: ({ env, target, modern, isServer, modul
38
34
  useESModules: boolean;
39
35
  })[] | (string | {
40
36
  id: string[];
41
- })[] | (string | {
42
- root: string[];
43
- extensions: string[];
44
- alias: Record<string, any>;
45
37
  })[] | (string | {
46
38
  legacy: boolean;
47
39
  })[] | (string | {
@@ -31,7 +31,7 @@ function hasJsxRuntime() {
31
31
  const babelConfigFactory = ({ env = 'development', target, modern, isServer = false, modules = false, generateDataQaTag = true, enableFillActionNamePlugin = false,
32
32
  // for testing only!
33
33
  // @ts-expect-error
34
- markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, alias, tramvai = false, hot = false, excludesPresetEnv, rootDir = process.cwd(), }) => {
34
+ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, tramvai = false, hot = false, excludesPresetEnv, rootDir = process.cwd(), }) => {
35
35
  var _a, _b;
36
36
  const cfg = envConfig[env] || {};
37
37
  let resultTarget = target;
@@ -102,14 +102,6 @@ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWin
102
102
  enableFillActionNamePlugin && path_1.default.resolve(__dirname, './plugins/fill-action-name'),
103
103
  markCreateTokenAsPure && path_1.default.resolve(__dirname, './plugins/create-token-pure'),
104
104
  ['lodash', { id: ['ramda'] }],
105
- [
106
- 'module-resolver',
107
- {
108
- root: ['./'],
109
- extensions: ['.js', '.jsx', '.ts', '.tsx'],
110
- alias,
111
- },
112
- ],
113
105
  isServer && 'babel-plugin-dynamic-import-node',
114
106
  [
115
107
  '@babel/plugin-proposal-decorators',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"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"}
@@ -16,10 +16,6 @@ declare const _default: (options: Options) => {
16
16
  useESModules: boolean;
17
17
  })[] | (string | {
18
18
  id: string[];
19
- })[] | (string | {
20
- root: string[];
21
- extensions: string[];
22
- alias: Record<string, any>;
23
19
  })[] | (string | {
24
20
  legacy: boolean;
25
21
  })[] | (string | {
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  const path_1 = tslib_1.__importDefault(require("path"));
5
5
  const omit_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/omit"));
6
- const babel_1 = tslib_1.__importDefault(require("../babel"));
6
+ const babel_1 = require("../babel");
7
7
  const rootDir = process.cwd();
8
8
  exports.default = (options) => {
9
9
  const { env, modern, isServer, tramvai } = options;
@@ -14,7 +14,7 @@ exports.default = (options) => {
14
14
  silent: true,
15
15
  useBabel: true,
16
16
  // для лоадера конфиг отличается от plain babel config, нужно преобразовывать
17
- babelOptions: (0, omit_1.default)(['cacheDirectory', 'cacheIdentifier'], (0, babel_1.default)({
17
+ babelOptions: (0, omit_1.default)(['cacheDirectory', 'cacheIdentifier'], (0, babel_1.babelConfigFactory)({
18
18
  env,
19
19
  isServer,
20
20
  modern,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/typescript/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,8EAA8C;AAE9C,6DAAmC;AAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAS9B,kBAAe,CAAC,OAAgB,EAAE,EAAE;IAClC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEnD,OAAO;QACL,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,6EAA6E;QAC7E,YAAY,EAAE,IAAA,cAAI,EAChB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EACrC,IAAA,eAAW,EAAC;YACV,GAAG;YACH,QAAQ;YACR,MAAM;YACN,OAAO;SACR,CAAC,CACH;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/typescript/index.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,8EAA8C;AAE9C,oCAA8C;AAE9C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAS9B,kBAAe,CAAC,OAAgB,EAAE,EAAE;IAClC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAEnD,OAAO;QACL,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzF,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,IAAI;QACd,6EAA6E;QAC7E,YAAY,EAAE,IAAA,cAAI,EAChB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,EACrC,IAAA,0BAAkB,EAAC;YACjB,GAAG;YACH,QAAQ;YACR,MAAM;YACN,OAAO;SACR,CAAC,CACH;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -3,5 +3,10 @@ import type { ConfigManager } from '../../../config/configManager';
3
3
  import type { CliConfigEntry } from '../../../typings/configEntry/cli';
4
4
  export declare const addSvgrLoader: (configManager: ConfigManager<CliConfigEntry>, config: Config, svgoOptions: Record<string, any>) => void;
5
5
  export declare const getSvgoOptions: (configManager: ConfigManager<CliConfigEntry>) => {
6
- plugins: any[];
6
+ configFile: boolean;
7
+ plugins: {
8
+ [x: string]: any;
9
+ name: string;
10
+ active: boolean;
11
+ }[];
7
12
  };
@@ -19,12 +19,15 @@ exports.addSvgrLoader = addSvgrLoader;
19
19
  const getSvgoOptions = (configManager) => {
20
20
  var _a, _b;
21
21
  return {
22
+ configFile: false,
22
23
  plugins: (_b = (_a = configManager.svgo) === null || _a === void 0 ? void 0 : _a.plugins) !== null && _b !== void 0 ? _b : [
23
24
  {
24
- cleanupIDs: false,
25
+ name: 'cleanupIds',
26
+ active: false,
25
27
  },
26
28
  {
27
- collapseGroups: false,
29
+ name: 'collapseGroups',
30
+ active: false,
28
31
  },
29
32
  ],
30
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/files.ts"],"names":[],"mappings":";;;AAGA,6CAAwE;AAEjE,MAAM,aAAa,GAAG,CAC3B,aAA4C,EAC5C,MAAc,EACd,WAAgC,EAChC,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAAC,aAAa,CAAC,CAAC;IAC5D,4FAA4F;IAC5F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM;SAC7B,IAAI,CAAC,MAAM,CAAC;SACZ,IAAI,CAAC,QAAQ,CAAC;QACf,4CAA4C;SAC3C,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC;SAC7B,GAAG,CAAC,iBAAiB,CAAC;SACtB,KAAK,CACJ,IAAA,gCAAmB,EAAC,aAAa,kCAC5B,gBAAgB,KACnB,UAAU,EAAE,IAAI,IAChB,CACH;SACA,GAAG,EAAE,CAAC;IAET,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AACpG,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB;AAEK,MAAM,cAAc,GAAG,CAAC,aAA4C,EAAE,EAAE;;IAC7E,OAAO;QACL,OAAO,EAAE,MAAA,MAAA,aAAa,CAAC,IAAI,0CAAE,OAAO,mCAAI;YACtC;gBACE,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,cAAc,EAAE,KAAK;aACtB;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,cAAc,kBAWzB"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/files.ts"],"names":[],"mappings":";;;AAGA,6CAAwE;AAEjE,MAAM,aAAa,GAAG,CAC3B,aAA4C,EAC5C,MAAc,EACd,WAAgC,EAChC,EAAE;IACF,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAAC,aAAa,CAAC,CAAC;IAC5D,4FAA4F;IAC5F,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM;SAC7B,IAAI,CAAC,MAAM,CAAC;SACZ,IAAI,CAAC,QAAQ,CAAC;QACf,4CAA4C;SAC3C,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC;SAC7B,GAAG,CAAC,iBAAiB,CAAC;SACtB,KAAK,CACJ,IAAA,gCAAmB,EAAC,aAAa,kCAC5B,gBAAgB,KACnB,UAAU,EAAE,IAAI,IAChB,CACH;SACA,GAAG,EAAE,CAAC;IAET,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;AACpG,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB;AAEK,MAAM,cAAc,GAAG,CAAC,aAA4C,EAAE,EAAE;;IAC7E,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,MAAA,MAAA,aAAa,CAAC,IAAI,0CAAE,OAAO,mCAAI;YACtC;gBACE,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,KAAK;aACd;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,MAAM,EAAE,KAAK;aACd;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
@@ -16,8 +16,10 @@ const createWorkerPoolConfig = (configManager) => {
16
16
  };
17
17
  const isApplicable = (configManager) => {
18
18
  return (
19
- // TODO: check that there is still issue with windows systems and thread-loader
20
- process.platform !== 'win32' &&
19
+ // thread-loader uses child_process.fork underhood, and sometimes (50/50) work in these processes does not get into inspector.Session profile
20
+ !process.env.TRAMVAI_CPU_PROFILE &&
21
+ // TODO: check that there is still issue with windows systems and thread-loader
22
+ process.platform !== 'win32' &&
21
23
  // swc has inbuilt threads support, see https://swc.rs/blog/perf-swc-vs-babel#real-world-benchmark
22
24
  configManager.experiments.transpilation.loader !== 'swc');
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"threadLoader.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/threadLoader.ts"],"names":[],"mappings":";;;;AAAA,oEAA8C;AAC9C,gEAAyD;AAKzD,MAAM,eAAe,GAAG,CAAC,aAA4C,EAAO,EAAE;IAC5E,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC;IAEzD,OAAO,gBAAgB,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,aAA4C,EAAE,EAAE;IAC9E,qCACE,WAAW,EAAE,aAAa,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,2EAA2E;QAC3E,2CAA2C;QAC3C,WAAW,EAAE,aAAa,CAAC,GAAG,KAAK,aAAa,IAC7C,eAAe,CAAC,aAAa,CAAC,KACjC,IAAI,EAAE,qBAAqB,IAC3B;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,aAA4C,EAAE,EAAE;IACpE,OAAO;IACL,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,kGAAkG;QAClG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CACzD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,aAA4C,EAAE,EAAE;IACxE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAChC,OAAO;KACR;IAED,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,aAA4C,EAAE,EAAE;IAC/E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAChC,OAAO;KACR;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAErD,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;QAC1B,cAAc;QACd,mBAAmB;QACnB,0BAA0B;QAC1B,qBAAqB;QACrB,iCAAiC;QACjC,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B;AAEK,MAAM,eAAe,GAAG,CAAC,aAA4C,EAAE,EAAE;;IAC9E,MAAA,IAAA,qBAAO,EAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,0CAAE,cAAc,EAAE,CAAC;AACnE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,iBAAiB,GAC5B,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAmB,EAAE,EAAE;IACxE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CACnF,CAAC;AACJ,CAAC,CAAC;AALS,QAAA,iBAAiB,qBAK1B"}
1
+ {"version":3,"file":"threadLoader.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/threadLoader.ts"],"names":[],"mappings":";;;;AAAA,oEAA8C;AAC9C,gEAAyD;AAKzD,MAAM,eAAe,GAAG,CAAC,aAA4C,EAAO,EAAE;IAC5E,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,aAAa,CAAC;IAEzD,OAAO,gBAAgB,IAAI,EAAE,CAAC;AAChC,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,aAA4C,EAAE,EAAE;IAC9E,qCACE,WAAW,EAAE,aAAa,CAAC,GAAG,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QACvE,2EAA2E;QAC3E,2CAA2C;QAC3C,WAAW,EAAE,aAAa,CAAC,GAAG,KAAK,aAAa,IAC7C,eAAe,CAAC,aAAa,CAAC,KACjC,IAAI,EAAE,qBAAqB,IAC3B;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,aAA4C,EAAE,EAAE;IACpE,OAAO;IACL,6IAA6I;IAC7I,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAChC,+EAA+E;QAC/E,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC5B,kGAAkG;QAClG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,KAAK,KAAK,CACzD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,aAA4C,EAAE,EAAE;IACxE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAChC,OAAO;KACR;IAED,OAAO,sBAAsB,CAAC,aAAa,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,aAA4C,EAAE,EAAE;IAC/E,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;QAChC,OAAO;KACR;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;IAErD,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;QAC1B,cAAc;QACd,mBAAmB;QACnB,0BAA0B;QAC1B,qBAAqB;QACrB,iCAAiC;QACjC,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B;AAEK,MAAM,eAAe,GAAG,CAAC,aAA4C,EAAE,EAAE;;IAC9E,MAAA,IAAA,qBAAO,EAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC,0CAAE,cAAc,EAAE,CAAC;AACnE,CAAC,CAAC;AAFW,QAAA,eAAe,mBAE1B;AAEK,MAAM,iBAAiB,GAC5B,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAmB,EAAE,EAAE;IACxE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CACnF,CAAC;AACJ,CAAC,CAAC;AALS,QAAA,iBAAiB,qBAK1B"}
@@ -14,7 +14,6 @@ export type TranspilerConfig = {
14
14
  modules: 'es6' | 'commonjs' | false;
15
15
  loader: boolean;
16
16
  removeTypeofWindow: boolean;
17
- alias: Record<string, any>;
18
17
  tramvai: boolean;
19
18
  hot: boolean;
20
19
  excludesPresetEnv: string[];
@@ -1,10 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTranspilerConfig = exports.addTranspilerLoader = void 0;
4
- const tslib_1 = require("tslib");
5
4
  const resolve_1 = require("resolve");
6
5
  const swc_1 = require("../../swc");
7
- const babel_1 = tslib_1.__importDefault(require("../../babel"));
6
+ const babel_1 = require("../../babel");
8
7
  const addTranspilerLoader = (configManager, transpilerConfig) => (rule) => {
9
8
  const { loader } = configManager.experiments.transpilation;
10
9
  if (loader === 'swc') {
@@ -19,17 +18,20 @@ Please run "npx tramvai add --dev @tramvai/swc-integration" to fix the problem
19
18
  return rule.loader('swc-loader').options((0, swc_1.getSwcOptions)(transpilerConfig)).end();
20
19
  }
21
20
  if (loader === 'babel') {
22
- return rule.loader('babel-loader').options((0, babel_1.default)(transpilerConfig)).end();
21
+ return rule.loader('babel-loader').options((0, babel_1.babelConfigFactory)(transpilerConfig)).end();
23
22
  }
24
23
  };
25
24
  exports.addTranspilerLoader = addTranspilerLoader;
26
25
  const getTranspilerConfig = (configManager, overrideOptions = {}) => {
27
26
  const { generateDataQaTag, alias, enableFillActionNamePlugin, excludesPresetEnv } = configManager;
28
27
  const { env, modern } = configManager;
28
+ if (alias) {
29
+ console.warn(`"alias" option deprecated and ignored as cli now supports baseUrl and paths from the app's tsconfig.json file.
30
+ Just check or add configuration to your tsconfig file and remove alias from tramvai.json`);
31
+ }
29
32
  return Object.assign({ isServer: configManager.buildType === 'server', env,
30
33
  generateDataQaTag,
31
- modern,
32
- alias, tramvai: true, removeTypeofWindow: true, hot: !!configManager.hotRefresh.enabled, excludesPresetEnv,
34
+ modern, tramvai: true, removeTypeofWindow: true, hot: !!configManager.hotRefresh.enabled, excludesPresetEnv,
33
35
  enableFillActionNamePlugin, rootDir: configManager.rootDir, target: configManager.target, loader: true, modules: false, typescript: false }, overrideOptions);
34
36
  };
35
37
  exports.getTranspilerConfig = getTranspilerConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;;AACA,qCAA0C;AAE1C,mCAA0C;AAC1C,gEAAsC;AAuB/B,MAAM,mBAAmB,GAC9B,CAAC,aAA4C,EAAE,gBAAkC,EAAE,EAAE,CACrF,CAAC,IAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC;IAE3D,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,IAAI;YACF,IAAA,cAAO,EAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SACtF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC;;OAEjB,CAAC,CAAC;SACF;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjF;IAED,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAA,eAAW,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjF;AACH,CAAC,CAAC;AApBS,QAAA,mBAAmB,uBAoB5B;AAEG,MAAM,mBAAmB,GAAG,CACjC,aAA4C,EAC5C,kBAA6C,EAAE,EAC7B,EAAE;IACpB,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;IAClG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAEtC,uBACE,QAAQ,EAAE,aAAa,CAAC,SAAS,KAAK,QAAQ,EAC9C,GAAG;QACH,iBAAiB;QACjB,MAAM;QACN,KAAK,EACL,OAAO,EAAE,IAAI,EACb,kBAAkB,EAAE,IAAI,EACxB,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EACvC,iBAAiB;QACjB,0BAA0B,EAC1B,OAAO,EAAE,aAAa,CAAC,OAAO,EAC9B,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,KAAK,IACd,eAAe,EAClB;AACJ,CAAC,CAAC;AAzBW,QAAA,mBAAmB,uBAyB9B"}
1
+ {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;AACA,qCAA0C;AAE1C,mCAA0C;AAC1C,uCAAiD;AAsB1C,MAAM,mBAAmB,GAC9B,CAAC,aAA4C,EAAE,gBAAkC,EAAE,EAAE,CACrF,CAAC,IAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC;IAE3D,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,IAAI;YACF,IAAA,cAAO,EAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SACtF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC;;OAEjB,CAAC,CAAC;SACF;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjF;IAED,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAA,0BAAkB,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACxF;AACH,CAAC,CAAC;AApBS,QAAA,mBAAmB,uBAoB5B;AAEG,MAAM,mBAAmB,GAAG,CACjC,aAA4C,EAC5C,kBAA6C,EAAE,EAC7B,EAAE;IACpB,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,GAAG,aAAa,CAAC;IAClG,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAEtC,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,IAAI,CAAC;yFACwE,CAAC,CAAC;KACxF;IAED,uBACE,QAAQ,EAAE,aAAa,CAAC,SAAS,KAAK,QAAQ,EAC9C,GAAG;QACH,iBAAiB;QACjB,MAAM,EACN,OAAO,EAAE,IAAI,EACb,kBAAkB,EAAE,IAAI,EACxB,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,EACvC,iBAAiB;QACjB,0BAA0B,EAC1B,OAAO,EAAE,aAAa,CAAC,OAAO,EAC9B,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,KAAK,EACd,UAAU,EAAE,KAAK,IACd,eAAe,EAClB;AACJ,CAAC,CAAC;AA7BW,QAAA,mBAAmB,uBA6B9B"}
@@ -1017,7 +1017,18 @@
1017
1017
  "plugins": {
1018
1018
  "title": "svgo plugins",
1019
1019
  "type": "array",
1020
- "items": {}
1020
+ "items": {
1021
+ "type": "object",
1022
+ "properties": {
1023
+ "name": {
1024
+ "type": "string"
1025
+ },
1026
+ "active": {
1027
+ "type": "boolean"
1028
+ }
1029
+ },
1030
+ "additionalProperties": false
1031
+ }
1021
1032
  }
1022
1033
  },
1023
1034
  "additionalProperties": false
@@ -1122,23 +1133,23 @@
1122
1133
  "dotAll": {
1123
1134
  "type": "boolean"
1124
1135
  },
1125
- "__@match@8195": {
1136
+ "__@match@8199": {
1126
1137
  "type": "object",
1127
1138
  "additionalProperties": false
1128
1139
  },
1129
- "__@replace@8197": {
1140
+ "__@replace@8201": {
1130
1141
  "type": "object",
1131
1142
  "additionalProperties": false
1132
1143
  },
1133
- "__@search@8200": {
1144
+ "__@search@8204": {
1134
1145
  "type": "object",
1135
1146
  "additionalProperties": false
1136
1147
  },
1137
- "__@split@8202": {
1148
+ "__@split@8206": {
1138
1149
  "type": "object",
1139
1150
  "additionalProperties": false
1140
1151
  },
1141
- "__@matchAll@8204": {
1152
+ "__@matchAll@8208": {
1142
1153
  "type": "object",
1143
1154
  "additionalProperties": false
1144
1155
  }
@@ -1659,7 +1670,18 @@
1659
1670
  "plugins": {
1660
1671
  "title": "svgo plugins",
1661
1672
  "type": "array",
1662
- "items": {}
1673
+ "items": {
1674
+ "type": "object",
1675
+ "properties": {
1676
+ "name": {
1677
+ "type": "string"
1678
+ },
1679
+ "active": {
1680
+ "type": "boolean"
1681
+ }
1682
+ },
1683
+ "additionalProperties": false
1684
+ }
1663
1685
  }
1664
1686
  },
1665
1687
  "additionalProperties": false
@@ -1764,23 +1786,23 @@
1764
1786
  "dotAll": {
1765
1787
  "type": "boolean"
1766
1788
  },
1767
- "__@match@8195": {
1789
+ "__@match@8199": {
1768
1790
  "type": "object",
1769
1791
  "additionalProperties": false
1770
1792
  },
1771
- "__@replace@8197": {
1793
+ "__@replace@8201": {
1772
1794
  "type": "object",
1773
1795
  "additionalProperties": false
1774
1796
  },
1775
- "__@search@8200": {
1797
+ "__@search@8204": {
1776
1798
  "type": "object",
1777
1799
  "additionalProperties": false
1778
1800
  },
1779
- "__@split@8202": {
1801
+ "__@split@8206": {
1780
1802
  "type": "object",
1781
1803
  "additionalProperties": false
1782
1804
  },
1783
- "__@matchAll@8204": {
1805
+ "__@matchAll@8208": {
1784
1806
  "type": "object",
1785
1807
  "additionalProperties": false
1786
1808
  }
@@ -2301,7 +2323,18 @@
2301
2323
  "plugins": {
2302
2324
  "title": "svgo plugins",
2303
2325
  "type": "array",
2304
- "items": {}
2326
+ "items": {
2327
+ "type": "object",
2328
+ "properties": {
2329
+ "name": {
2330
+ "type": "string"
2331
+ },
2332
+ "active": {
2333
+ "type": "boolean"
2334
+ }
2335
+ },
2336
+ "additionalProperties": false
2337
+ }
2305
2338
  }
2306
2339
  },
2307
2340
  "additionalProperties": false
@@ -2406,23 +2439,23 @@
2406
2439
  "dotAll": {
2407
2440
  "type": "boolean"
2408
2441
  },
2409
- "__@match@8195": {
2442
+ "__@match@8199": {
2410
2443
  "type": "object",
2411
2444
  "additionalProperties": false
2412
2445
  },
2413
- "__@replace@8197": {
2446
+ "__@replace@8201": {
2414
2447
  "type": "object",
2415
2448
  "additionalProperties": false
2416
2449
  },
2417
- "__@search@8200": {
2450
+ "__@search@8204": {
2418
2451
  "type": "object",
2419
2452
  "additionalProperties": false
2420
2453
  },
2421
- "__@split@8202": {
2454
+ "__@split@8206": {
2422
2455
  "type": "object",
2423
2456
  "additionalProperties": false
2424
2457
  },
2425
- "__@matchAll@8204": {
2458
+ "__@matchAll@8208": {
2426
2459
  "type": "object",
2427
2460
  "additionalProperties": false
2428
2461
  }
@@ -151,7 +151,11 @@ export interface CliConfigEntry extends ConfigEntry {
151
151
  /**
152
152
  * @title svgo plugins
153
153
  */
154
- plugins?: Array<any>;
154
+ plugins?: Array<{
155
+ name: string;
156
+ active: boolean;
157
+ [key: string]: any;
158
+ }>;
155
159
  };
156
160
  /**
157
161
  * @title Settings for image-webpack-loader
@@ -0,0 +1 @@
1
+ export declare function enableCpuProfile(key: string): void;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enableCpuProfile = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const inspector_1 = require("inspector");
6
+ const fs_1 = tslib_1.__importDefault(require("fs"));
7
+ // reference - https://github.com/vercel/next.js/blob/canary/packages/next/src/server/lib/cpu-profile.ts
8
+ function enableCpuProfile(key) {
9
+ const session = new inspector_1.Session();
10
+ let saved = false;
11
+ session.connect();
12
+ session.post('Profiler.enable');
13
+ session.post('Profiler.start');
14
+ function saveProfile() {
15
+ if (saved) {
16
+ return;
17
+ }
18
+ saved = true;
19
+ session.post('Profiler.stop', (error, param) => {
20
+ if (error) {
21
+ console.error('Cannot generate CPU profiling:', error);
22
+ return;
23
+ }
24
+ // Write profile to disk
25
+ const filename = `${key}.${Date.now()}.cpuprofile`;
26
+ fs_1.default.writeFileSync(`./${filename}`, JSON.stringify(param.profile));
27
+ process.exit(0);
28
+ });
29
+ }
30
+ process.on('SIGINT', saveProfile);
31
+ process.on('SIGTERM', saveProfile);
32
+ process.on('exit', saveProfile);
33
+ }
34
+ exports.enableCpuProfile = enableCpuProfile;
35
+ //# sourceMappingURL=cpu-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu-profile.js","sourceRoot":"","sources":["../../src/utils/cpu-profile.ts"],"names":[],"mappings":";;;;AAAA,yCAAoC;AACpC,oDAAoB;AAEpB,wGAAwG;AACxG,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE/B,SAAS,WAAW;QAClB,IAAI,KAAK,EAAE;YACT,OAAO;SACR;QACD,KAAK,GAAG,IAAI,CAAC;QAEb,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC7C,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,OAAO;aACR;YAED,wBAAwB;YACxB,MAAM,QAAQ,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;YACnD,YAAE,CAAC,aAAa,CAAC,KAAK,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAClC,CAAC;AA/BD,4CA+BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/cli",
3
- "version": "2.124.0",
3
+ "version": "2.125.0",
4
4
  "description": "Cli инструмент для сборки и запуска приложений",
5
5
  "files": [
6
6
  "src",
@@ -71,7 +71,7 @@
71
71
  "@tinkoff/utils": "^2.1.3",
72
72
  "@tinkoff/webpack-dedupe-plugin": "1.0.5",
73
73
  "@tramvai/build": "3.1.3",
74
- "@tramvai/react": "2.124.0",
74
+ "@tramvai/react": "2.125.0",
75
75
  "@tramvai/tools-check-versions": "0.4.15",
76
76
  "@tramvai/tools-migrate": "0.6.19",
77
77
  "ajv": "^6.12.6",
@@ -80,7 +80,6 @@
80
80
  "babel-loader": "^8.2.5",
81
81
  "babel-plugin-dynamic-import-node": "^2.3.3",
82
82
  "babel-plugin-lodash": "^3.3.4",
83
- "babel-plugin-module-resolver": "^4.1.0",
84
83
  "babel-plugin-transform-define": "^2.0.1",
85
84
  "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
86
85
  "boxen": "^4.2.0",
@@ -147,8 +146,8 @@
147
146
  "source-map-loader": "^4.0.0",
148
147
  "spark-md5": "^3.0.2",
149
148
  "stoppable": "^1.1.0",
150
- "svgo": "^1.3.2",
151
- "svgo-loader": "^2.2.2",
149
+ "svgo": "^3.0.2",
150
+ "svgo-loader": "^4.0.0",
152
151
  "terser-webpack-plugin": "^5.3.9",
153
152
  "text-table": "^0.2.0",
154
153
  "thread-loader": "^3.0.4",
package/schema.json CHANGED
@@ -1038,7 +1038,18 @@
1038
1038
  "plugins": {
1039
1039
  "title": "svgo plugins",
1040
1040
  "type": "array",
1041
- "items": {}
1041
+ "items": {
1042
+ "type": "object",
1043
+ "properties": {
1044
+ "name": {
1045
+ "type": "string"
1046
+ },
1047
+ "active": {
1048
+ "type": "boolean"
1049
+ }
1050
+ },
1051
+ "additionalProperties": false
1052
+ }
1042
1053
  }
1043
1054
  },
1044
1055
  "additionalProperties": false
@@ -1143,23 +1154,23 @@
1143
1154
  "dotAll": {
1144
1155
  "type": "boolean"
1145
1156
  },
1146
- "__@match@8195": {
1157
+ "__@match@8199": {
1147
1158
  "type": "object",
1148
1159
  "additionalProperties": false
1149
1160
  },
1150
- "__@replace@8197": {
1161
+ "__@replace@8201": {
1151
1162
  "type": "object",
1152
1163
  "additionalProperties": false
1153
1164
  },
1154
- "__@search@8200": {
1165
+ "__@search@8204": {
1155
1166
  "type": "object",
1156
1167
  "additionalProperties": false
1157
1168
  },
1158
- "__@split@8202": {
1169
+ "__@split@8206": {
1159
1170
  "type": "object",
1160
1171
  "additionalProperties": false
1161
1172
  },
1162
- "__@matchAll@8204": {
1173
+ "__@matchAll@8208": {
1163
1174
  "type": "object",
1164
1175
  "additionalProperties": false
1165
1176
  }
@@ -1688,7 +1699,18 @@
1688
1699
  "plugins": {
1689
1700
  "title": "svgo plugins",
1690
1701
  "type": "array",
1691
- "items": {}
1702
+ "items": {
1703
+ "type": "object",
1704
+ "properties": {
1705
+ "name": {
1706
+ "type": "string"
1707
+ },
1708
+ "active": {
1709
+ "type": "boolean"
1710
+ }
1711
+ },
1712
+ "additionalProperties": false
1713
+ }
1692
1714
  }
1693
1715
  },
1694
1716
  "additionalProperties": false
@@ -1793,23 +1815,23 @@
1793
1815
  "dotAll": {
1794
1816
  "type": "boolean"
1795
1817
  },
1796
- "__@match@8195": {
1818
+ "__@match@8199": {
1797
1819
  "type": "object",
1798
1820
  "additionalProperties": false
1799
1821
  },
1800
- "__@replace@8197": {
1822
+ "__@replace@8201": {
1801
1823
  "type": "object",
1802
1824
  "additionalProperties": false
1803
1825
  },
1804
- "__@search@8200": {
1826
+ "__@search@8204": {
1805
1827
  "type": "object",
1806
1828
  "additionalProperties": false
1807
1829
  },
1808
- "__@split@8202": {
1830
+ "__@split@8206": {
1809
1831
  "type": "object",
1810
1832
  "additionalProperties": false
1811
1833
  },
1812
- "__@matchAll@8204": {
1834
+ "__@matchAll@8208": {
1813
1835
  "type": "object",
1814
1836
  "additionalProperties": false
1815
1837
  }
@@ -2338,7 +2360,18 @@
2338
2360
  "plugins": {
2339
2361
  "title": "svgo plugins",
2340
2362
  "type": "array",
2341
- "items": {}
2363
+ "items": {
2364
+ "type": "object",
2365
+ "properties": {
2366
+ "name": {
2367
+ "type": "string"
2368
+ },
2369
+ "active": {
2370
+ "type": "boolean"
2371
+ }
2372
+ },
2373
+ "additionalProperties": false
2374
+ }
2342
2375
  }
2343
2376
  },
2344
2377
  "additionalProperties": false
@@ -2443,23 +2476,23 @@
2443
2476
  "dotAll": {
2444
2477
  "type": "boolean"
2445
2478
  },
2446
- "__@match@8195": {
2479
+ "__@match@8199": {
2447
2480
  "type": "object",
2448
2481
  "additionalProperties": false
2449
2482
  },
2450
- "__@replace@8197": {
2483
+ "__@replace@8201": {
2451
2484
  "type": "object",
2452
2485
  "additionalProperties": false
2453
2486
  },
2454
- "__@search@8200": {
2487
+ "__@search@8204": {
2455
2488
  "type": "object",
2456
2489
  "additionalProperties": false
2457
2490
  },
2458
- "__@split@8202": {
2491
+ "__@split@8206": {
2459
2492
  "type": "object",
2460
2493
  "additionalProperties": false
2461
2494
  },
2462
- "__@matchAll@8204": {
2495
+ "__@matchAll@8208": {
2463
2496
  "type": "object",
2464
2497
  "additionalProperties": false
2465
2498
  }
package/src/cli/runCLI.ts CHANGED
@@ -2,6 +2,7 @@ import exit from 'exit';
2
2
 
3
3
  import { fixYarnSettingsOverride } from '../utils/fixYarnSettingsOverride';
4
4
  import { handleErrors } from '../utils/handleErrors';
5
+ import { enableCpuProfile } from '../utils/cpu-profile';
5
6
 
6
7
  // to use V8's code cache to speed up instantiation time
7
8
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
@@ -10,6 +11,10 @@ import('v8-compile-cache');
10
11
  handleErrors();
11
12
  fixYarnSettingsOverride();
12
13
 
14
+ if (process.env.TRAMVAI_CPU_PROFILE) {
15
+ enableCpuProfile('tramvai-cli');
16
+ }
17
+
13
18
  export default (pathCli: string) => {
14
19
  const cli = require(pathCli).cliInitialized;
15
20
 
@@ -42,7 +42,6 @@ export const babelConfigFactory = ({
42
42
  typescript = false,
43
43
  loader = true,
44
44
  removeTypeofWindow,
45
- alias,
46
45
  tramvai = false,
47
46
  hot = false,
48
47
  excludesPresetEnv,
@@ -125,14 +124,6 @@ export const babelConfigFactory = ({
125
124
  enableFillActionNamePlugin && path.resolve(__dirname, './plugins/fill-action-name'), // Собственный плагин. Необходимо удалить в будущем
126
125
  markCreateTokenAsPure && path.resolve(__dirname, './plugins/create-token-pure'),
127
126
  ['lodash', { id: ['ramda'] }],
128
- [
129
- 'module-resolver',
130
- {
131
- root: ['./'],
132
- extensions: ['.js', '.jsx', '.ts', '.tsx'],
133
- alias,
134
- },
135
- ],
136
127
  isServer && 'babel-plugin-dynamic-import-node',
137
128
  [
138
129
  '@babel/plugin-proposal-decorators',
@@ -1,7 +1,7 @@
1
1
  import path from 'path';
2
2
  import omit from '@tinkoff/utils/object/omit';
3
3
  import type { Env } from '../../typings/Env';
4
- import babelConfig from '../babel';
4
+ import { babelConfigFactory } from '../babel';
5
5
 
6
6
  const rootDir = process.cwd();
7
7
 
@@ -24,7 +24,7 @@ export default (options: Options) => {
24
24
  // для лоадера конфиг отличается от plain babel config, нужно преобразовывать
25
25
  babelOptions: omit(
26
26
  ['cacheDirectory', 'cacheIdentifier'],
27
- babelConfig({
27
+ babelConfigFactory({
28
28
  env,
29
29
  isServer,
30
30
  modern,
@@ -29,12 +29,15 @@ export const addSvgrLoader = (
29
29
 
30
30
  export const getSvgoOptions = (configManager: ConfigManager<CliConfigEntry>) => {
31
31
  return {
32
+ configFile: false,
32
33
  plugins: configManager.svgo?.plugins ?? [
33
34
  {
34
- cleanupIDs: false,
35
+ name: 'cleanupIds',
36
+ active: false,
35
37
  },
36
38
  {
37
- collapseGroups: false,
39
+ name: 'collapseGroups',
40
+ active: false,
38
41
  },
39
42
  ],
40
43
  };
@@ -23,6 +23,8 @@ const createWorkerPoolConfig = (configManager: ConfigManager<CliConfigEntry>) =>
23
23
 
24
24
  const isApplicable = (configManager: ConfigManager<CliConfigEntry>) => {
25
25
  return (
26
+ // thread-loader uses child_process.fork underhood, and sometimes (50/50) work in these processes does not get into inspector.Session profile
27
+ !process.env.TRAMVAI_CPU_PROFILE &&
26
28
  // TODO: check that there is still issue with windows systems and thread-loader
27
29
  process.platform !== 'win32' &&
28
30
  // swc has inbuilt threads support, see https://swc.rs/blog/perf-swc-vs-babel#real-world-benchmark
@@ -2,7 +2,7 @@ import type Config from 'webpack-chain';
2
2
  import { sync as resolve } from 'resolve';
3
3
  import type { ConfigManager } from '../../../config/configManager';
4
4
  import { getSwcOptions } from '../../swc';
5
- import babelConfig from '../../babel';
5
+ import { babelConfigFactory } from '../../babel';
6
6
  import type { Env } from '../../../typings/Env';
7
7
  import type { Target } from '../../../typings/target';
8
8
  import type { CliConfigEntry } from '../../../typings/configEntry/cli';
@@ -18,7 +18,6 @@ export type TranspilerConfig = {
18
18
  modules: 'es6' | 'commonjs' | false;
19
19
  loader: boolean;
20
20
  removeTypeofWindow: boolean;
21
- alias: Record<string, any>;
22
21
  tramvai: boolean;
23
22
  hot: boolean;
24
23
  excludesPresetEnv: string[];
@@ -43,7 +42,7 @@ Please run "npx tramvai add --dev @tramvai/swc-integration" to fix the problem
43
42
  }
44
43
 
45
44
  if (loader === 'babel') {
46
- return rule.loader('babel-loader').options(babelConfig(transpilerConfig)).end();
45
+ return rule.loader('babel-loader').options(babelConfigFactory(transpilerConfig)).end();
47
46
  }
48
47
  };
49
48
 
@@ -54,12 +53,16 @@ export const getTranspilerConfig = (
54
53
  const { generateDataQaTag, alias, enableFillActionNamePlugin, excludesPresetEnv } = configManager;
55
54
  const { env, modern } = configManager;
56
55
 
56
+ if (alias) {
57
+ console.warn(`"alias" option deprecated and ignored as cli now supports baseUrl and paths from the app's tsconfig.json file.
58
+ Just check or add configuration to your tsconfig file and remove alias from tramvai.json`);
59
+ }
60
+
57
61
  return {
58
62
  isServer: configManager.buildType === 'server',
59
63
  env,
60
64
  generateDataQaTag,
61
65
  modern,
62
- alias,
63
66
  tramvai: true,
64
67
  removeTypeofWindow: true,
65
68
  hot: !!configManager.hotRefresh.enabled,
@@ -211,7 +211,7 @@ it('should populate defaults for overridable options', () => {
211
211
  svgo: {
212
212
  plugins: [
213
213
  {
214
- 'test-plugin': true,
214
+ name: 'test-plugin',
215
215
  },
216
216
  ],
217
217
  },
@@ -353,7 +353,7 @@ it('should populate defaults for overridable options', () => {
353
353
  "svgo": {
354
354
  "plugins": [
355
355
  {
356
- "test-plugin": true,
356
+ "name": "test-plugin",
357
357
  },
358
358
  ],
359
359
  },
@@ -1017,7 +1017,18 @@
1017
1017
  "plugins": {
1018
1018
  "title": "svgo plugins",
1019
1019
  "type": "array",
1020
- "items": {}
1020
+ "items": {
1021
+ "type": "object",
1022
+ "properties": {
1023
+ "name": {
1024
+ "type": "string"
1025
+ },
1026
+ "active": {
1027
+ "type": "boolean"
1028
+ }
1029
+ },
1030
+ "additionalProperties": false
1031
+ }
1021
1032
  }
1022
1033
  },
1023
1034
  "additionalProperties": false
@@ -1122,23 +1133,23 @@
1122
1133
  "dotAll": {
1123
1134
  "type": "boolean"
1124
1135
  },
1125
- "__@match@8195": {
1136
+ "__@match@8199": {
1126
1137
  "type": "object",
1127
1138
  "additionalProperties": false
1128
1139
  },
1129
- "__@replace@8197": {
1140
+ "__@replace@8201": {
1130
1141
  "type": "object",
1131
1142
  "additionalProperties": false
1132
1143
  },
1133
- "__@search@8200": {
1144
+ "__@search@8204": {
1134
1145
  "type": "object",
1135
1146
  "additionalProperties": false
1136
1147
  },
1137
- "__@split@8202": {
1148
+ "__@split@8206": {
1138
1149
  "type": "object",
1139
1150
  "additionalProperties": false
1140
1151
  },
1141
- "__@matchAll@8204": {
1152
+ "__@matchAll@8208": {
1142
1153
  "type": "object",
1143
1154
  "additionalProperties": false
1144
1155
  }
@@ -1659,7 +1670,18 @@
1659
1670
  "plugins": {
1660
1671
  "title": "svgo plugins",
1661
1672
  "type": "array",
1662
- "items": {}
1673
+ "items": {
1674
+ "type": "object",
1675
+ "properties": {
1676
+ "name": {
1677
+ "type": "string"
1678
+ },
1679
+ "active": {
1680
+ "type": "boolean"
1681
+ }
1682
+ },
1683
+ "additionalProperties": false
1684
+ }
1663
1685
  }
1664
1686
  },
1665
1687
  "additionalProperties": false
@@ -1764,23 +1786,23 @@
1764
1786
  "dotAll": {
1765
1787
  "type": "boolean"
1766
1788
  },
1767
- "__@match@8195": {
1789
+ "__@match@8199": {
1768
1790
  "type": "object",
1769
1791
  "additionalProperties": false
1770
1792
  },
1771
- "__@replace@8197": {
1793
+ "__@replace@8201": {
1772
1794
  "type": "object",
1773
1795
  "additionalProperties": false
1774
1796
  },
1775
- "__@search@8200": {
1797
+ "__@search@8204": {
1776
1798
  "type": "object",
1777
1799
  "additionalProperties": false
1778
1800
  },
1779
- "__@split@8202": {
1801
+ "__@split@8206": {
1780
1802
  "type": "object",
1781
1803
  "additionalProperties": false
1782
1804
  },
1783
- "__@matchAll@8204": {
1805
+ "__@matchAll@8208": {
1784
1806
  "type": "object",
1785
1807
  "additionalProperties": false
1786
1808
  }
@@ -2301,7 +2323,18 @@
2301
2323
  "plugins": {
2302
2324
  "title": "svgo plugins",
2303
2325
  "type": "array",
2304
- "items": {}
2326
+ "items": {
2327
+ "type": "object",
2328
+ "properties": {
2329
+ "name": {
2330
+ "type": "string"
2331
+ },
2332
+ "active": {
2333
+ "type": "boolean"
2334
+ }
2335
+ },
2336
+ "additionalProperties": false
2337
+ }
2305
2338
  }
2306
2339
  },
2307
2340
  "additionalProperties": false
@@ -2406,23 +2439,23 @@
2406
2439
  "dotAll": {
2407
2440
  "type": "boolean"
2408
2441
  },
2409
- "__@match@8195": {
2442
+ "__@match@8199": {
2410
2443
  "type": "object",
2411
2444
  "additionalProperties": false
2412
2445
  },
2413
- "__@replace@8197": {
2446
+ "__@replace@8201": {
2414
2447
  "type": "object",
2415
2448
  "additionalProperties": false
2416
2449
  },
2417
- "__@search@8200": {
2450
+ "__@search@8204": {
2418
2451
  "type": "object",
2419
2452
  "additionalProperties": false
2420
2453
  },
2421
- "__@split@8202": {
2454
+ "__@split@8206": {
2422
2455
  "type": "object",
2423
2456
  "additionalProperties": false
2424
2457
  },
2425
- "__@matchAll@8204": {
2458
+ "__@matchAll@8208": {
2426
2459
  "type": "object",
2427
2460
  "additionalProperties": false
2428
2461
  }
@@ -163,7 +163,11 @@ export interface CliConfigEntry extends ConfigEntry {
163
163
  /**
164
164
  * @title svgo plugins
165
165
  */
166
- plugins?: Array<any>;
166
+ plugins?: Array<{
167
+ name: string;
168
+ active: boolean;
169
+ [key: string]: any;
170
+ }>;
167
171
  };
168
172
 
169
173
  /**
@@ -0,0 +1,36 @@
1
+ import { Session } from 'inspector';
2
+ import fs from 'fs';
3
+
4
+ // reference - https://github.com/vercel/next.js/blob/canary/packages/next/src/server/lib/cpu-profile.ts
5
+ export function enableCpuProfile(key: string) {
6
+ const session = new Session();
7
+ let saved = false;
8
+
9
+ session.connect();
10
+
11
+ session.post('Profiler.enable');
12
+ session.post('Profiler.start');
13
+
14
+ function saveProfile() {
15
+ if (saved) {
16
+ return;
17
+ }
18
+ saved = true;
19
+
20
+ session.post('Profiler.stop', (error, param) => {
21
+ if (error) {
22
+ console.error('Cannot generate CPU profiling:', error);
23
+ return;
24
+ }
25
+
26
+ // Write profile to disk
27
+ const filename = `${key}.${Date.now()}.cpuprofile`;
28
+ fs.writeFileSync(`./${filename}`, JSON.stringify(param.profile));
29
+ process.exit(0);
30
+ });
31
+ }
32
+
33
+ process.on('SIGINT', saveProfile);
34
+ process.on('SIGTERM', saveProfile);
35
+ process.on('exit', saveProfile);
36
+ }