@tramvai/cli 2.124.0 → 2.125.2
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/README.md +12 -0
- package/bin/spawn.js +5 -1
- package/lib/builder/webpack/tokens.d.ts +15 -3
- package/lib/cli/runCLI.js +4 -0
- package/lib/cli/runCLI.js.map +1 -1
- package/lib/di/tokens/config.d.ts +5 -1
- package/lib/library/babel/index.d.ts +1 -9
- package/lib/library/babel/index.js +1 -9
- package/lib/library/babel/index.js.map +1 -1
- package/lib/library/typescript/index.d.ts +0 -4
- package/lib/library/typescript/index.js +2 -2
- package/lib/library/typescript/index.js.map +1 -1
- package/lib/library/webpack/utils/files.d.ts +6 -1
- package/lib/library/webpack/utils/files.js +5 -2
- package/lib/library/webpack/utils/files.js.map +1 -1
- package/lib/library/webpack/utils/threadLoader.js +4 -2
- package/lib/library/webpack/utils/threadLoader.js.map +1 -1
- package/lib/library/webpack/utils/transpiler.d.ts +0 -1
- package/lib/library/webpack/utils/transpiler.js +7 -5
- package/lib/library/webpack/utils/transpiler.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +51 -18
- package/lib/typings/configEntry/cli.d.ts +5 -1
- package/lib/utils/cpu-profile.d.ts +1 -0
- package/lib/utils/cpu-profile.js +35 -0
- package/lib/utils/cpu-profile.js.map +1 -0
- package/package.json +4 -5
- package/schema.json +51 -18
- package/src/cli/runCLI.ts +5 -0
- package/src/library/babel/index.ts +0 -9
- package/src/library/typescript/index.ts +2 -2
- package/src/library/webpack/utils/files.ts +5 -2
- package/src/library/webpack/utils/threadLoader.ts +2 -0
- package/src/library/webpack/utils/transpiler.ts +7 -4
- package/src/models/config.spec.ts +2 -2
- package/src/schema/autogeneratedSchema.json +51 -18
- package/src/typings/configEntry/cli.ts +5 -1
- 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
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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()
|
package/lib/cli/runCLI.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runCLI.js","sourceRoot":"","sources":["../../src/cli/runCLI.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AAExB,8EAA2E;AAC3E,wDAAqD;
|
|
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"}
|
|
@@ -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,
|
|
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,
|
|
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":";;;;AAAA,wDAAwB;AACxB,wEAAwC;AACxC,+FAAsD;AACtD,qCAA0C;AAI1C,MAAM,SAAS,GAAG;IAChB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,iDAAiD;YACjD;gBACE,mCAAmC;gBACnC;oBACE,YAAY,EAAE,IAAI;iBACnB;aACF;SACF;KACF;CACF,CAAC;AAEF,SAAS,aAAa;IACpB,IAAI;QACF,IAAA,cAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAEM,MAAM,kBAAkB,GAAG,CAAC,EACjC,GAAG,GAAG,aAAa,EACnB,MAAM,EACN,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,iBAAiB,GAAG,IAAI,EACxB,0BAA0B,GAAG,KAAK;AAClC,oBAAoB;AACpB,mBAAmB;AACnB,qBAAqB,GAAG,IAAI,EAC5B,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,IAAI,EACb,kBAAkB,EAClB,
|
|
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 =
|
|
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.
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
25
|
+
name: 'cleanupIds',
|
|
26
|
+
active: false,
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
|
-
|
|
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,
|
|
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
|
-
//
|
|
20
|
-
process.
|
|
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;
|
|
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"}
|
|
@@ -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 =
|
|
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.
|
|
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":"
|
|
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@
|
|
1136
|
+
"__@match@8199": {
|
|
1126
1137
|
"type": "object",
|
|
1127
1138
|
"additionalProperties": false
|
|
1128
1139
|
},
|
|
1129
|
-
"__@replace@
|
|
1140
|
+
"__@replace@8201": {
|
|
1130
1141
|
"type": "object",
|
|
1131
1142
|
"additionalProperties": false
|
|
1132
1143
|
},
|
|
1133
|
-
"__@search@
|
|
1144
|
+
"__@search@8204": {
|
|
1134
1145
|
"type": "object",
|
|
1135
1146
|
"additionalProperties": false
|
|
1136
1147
|
},
|
|
1137
|
-
"__@split@
|
|
1148
|
+
"__@split@8206": {
|
|
1138
1149
|
"type": "object",
|
|
1139
1150
|
"additionalProperties": false
|
|
1140
1151
|
},
|
|
1141
|
-
"__@matchAll@
|
|
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@
|
|
1789
|
+
"__@match@8199": {
|
|
1768
1790
|
"type": "object",
|
|
1769
1791
|
"additionalProperties": false
|
|
1770
1792
|
},
|
|
1771
|
-
"__@replace@
|
|
1793
|
+
"__@replace@8201": {
|
|
1772
1794
|
"type": "object",
|
|
1773
1795
|
"additionalProperties": false
|
|
1774
1796
|
},
|
|
1775
|
-
"__@search@
|
|
1797
|
+
"__@search@8204": {
|
|
1776
1798
|
"type": "object",
|
|
1777
1799
|
"additionalProperties": false
|
|
1778
1800
|
},
|
|
1779
|
-
"__@split@
|
|
1801
|
+
"__@split@8206": {
|
|
1780
1802
|
"type": "object",
|
|
1781
1803
|
"additionalProperties": false
|
|
1782
1804
|
},
|
|
1783
|
-
"__@matchAll@
|
|
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@
|
|
2442
|
+
"__@match@8199": {
|
|
2410
2443
|
"type": "object",
|
|
2411
2444
|
"additionalProperties": false
|
|
2412
2445
|
},
|
|
2413
|
-
"__@replace@
|
|
2446
|
+
"__@replace@8201": {
|
|
2414
2447
|
"type": "object",
|
|
2415
2448
|
"additionalProperties": false
|
|
2416
2449
|
},
|
|
2417
|
-
"__@search@
|
|
2450
|
+
"__@search@8204": {
|
|
2418
2451
|
"type": "object",
|
|
2419
2452
|
"additionalProperties": false
|
|
2420
2453
|
},
|
|
2421
|
-
"__@split@
|
|
2454
|
+
"__@split@8206": {
|
|
2422
2455
|
"type": "object",
|
|
2423
2456
|
"additionalProperties": false
|
|
2424
2457
|
},
|
|
2425
|
-
"__@matchAll@
|
|
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<
|
|
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.
|
|
3
|
+
"version": "2.125.2",
|
|
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.
|
|
74
|
+
"@tramvai/react": "2.125.2",
|
|
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": "^
|
|
151
|
-
"svgo-loader": "^
|
|
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@
|
|
1157
|
+
"__@match@8199": {
|
|
1147
1158
|
"type": "object",
|
|
1148
1159
|
"additionalProperties": false
|
|
1149
1160
|
},
|
|
1150
|
-
"__@replace@
|
|
1161
|
+
"__@replace@8201": {
|
|
1151
1162
|
"type": "object",
|
|
1152
1163
|
"additionalProperties": false
|
|
1153
1164
|
},
|
|
1154
|
-
"__@search@
|
|
1165
|
+
"__@search@8204": {
|
|
1155
1166
|
"type": "object",
|
|
1156
1167
|
"additionalProperties": false
|
|
1157
1168
|
},
|
|
1158
|
-
"__@split@
|
|
1169
|
+
"__@split@8206": {
|
|
1159
1170
|
"type": "object",
|
|
1160
1171
|
"additionalProperties": false
|
|
1161
1172
|
},
|
|
1162
|
-
"__@matchAll@
|
|
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@
|
|
1818
|
+
"__@match@8199": {
|
|
1797
1819
|
"type": "object",
|
|
1798
1820
|
"additionalProperties": false
|
|
1799
1821
|
},
|
|
1800
|
-
"__@replace@
|
|
1822
|
+
"__@replace@8201": {
|
|
1801
1823
|
"type": "object",
|
|
1802
1824
|
"additionalProperties": false
|
|
1803
1825
|
},
|
|
1804
|
-
"__@search@
|
|
1826
|
+
"__@search@8204": {
|
|
1805
1827
|
"type": "object",
|
|
1806
1828
|
"additionalProperties": false
|
|
1807
1829
|
},
|
|
1808
|
-
"__@split@
|
|
1830
|
+
"__@split@8206": {
|
|
1809
1831
|
"type": "object",
|
|
1810
1832
|
"additionalProperties": false
|
|
1811
1833
|
},
|
|
1812
|
-
"__@matchAll@
|
|
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@
|
|
2479
|
+
"__@match@8199": {
|
|
2447
2480
|
"type": "object",
|
|
2448
2481
|
"additionalProperties": false
|
|
2449
2482
|
},
|
|
2450
|
-
"__@replace@
|
|
2483
|
+
"__@replace@8201": {
|
|
2451
2484
|
"type": "object",
|
|
2452
2485
|
"additionalProperties": false
|
|
2453
2486
|
},
|
|
2454
|
-
"__@search@
|
|
2487
|
+
"__@search@8204": {
|
|
2455
2488
|
"type": "object",
|
|
2456
2489
|
"additionalProperties": false
|
|
2457
2490
|
},
|
|
2458
|
-
"__@split@
|
|
2491
|
+
"__@split@8206": {
|
|
2459
2492
|
"type": "object",
|
|
2460
2493
|
"additionalProperties": false
|
|
2461
2494
|
},
|
|
2462
|
-
"__@matchAll@
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
35
|
+
name: 'cleanupIds',
|
|
36
|
+
active: false,
|
|
35
37
|
},
|
|
36
38
|
{
|
|
37
|
-
|
|
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
|
|
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(
|
|
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'
|
|
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"
|
|
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@
|
|
1136
|
+
"__@match@8199": {
|
|
1126
1137
|
"type": "object",
|
|
1127
1138
|
"additionalProperties": false
|
|
1128
1139
|
},
|
|
1129
|
-
"__@replace@
|
|
1140
|
+
"__@replace@8201": {
|
|
1130
1141
|
"type": "object",
|
|
1131
1142
|
"additionalProperties": false
|
|
1132
1143
|
},
|
|
1133
|
-
"__@search@
|
|
1144
|
+
"__@search@8204": {
|
|
1134
1145
|
"type": "object",
|
|
1135
1146
|
"additionalProperties": false
|
|
1136
1147
|
},
|
|
1137
|
-
"__@split@
|
|
1148
|
+
"__@split@8206": {
|
|
1138
1149
|
"type": "object",
|
|
1139
1150
|
"additionalProperties": false
|
|
1140
1151
|
},
|
|
1141
|
-
"__@matchAll@
|
|
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@
|
|
1789
|
+
"__@match@8199": {
|
|
1768
1790
|
"type": "object",
|
|
1769
1791
|
"additionalProperties": false
|
|
1770
1792
|
},
|
|
1771
|
-
"__@replace@
|
|
1793
|
+
"__@replace@8201": {
|
|
1772
1794
|
"type": "object",
|
|
1773
1795
|
"additionalProperties": false
|
|
1774
1796
|
},
|
|
1775
|
-
"__@search@
|
|
1797
|
+
"__@search@8204": {
|
|
1776
1798
|
"type": "object",
|
|
1777
1799
|
"additionalProperties": false
|
|
1778
1800
|
},
|
|
1779
|
-
"__@split@
|
|
1801
|
+
"__@split@8206": {
|
|
1780
1802
|
"type": "object",
|
|
1781
1803
|
"additionalProperties": false
|
|
1782
1804
|
},
|
|
1783
|
-
"__@matchAll@
|
|
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@
|
|
2442
|
+
"__@match@8199": {
|
|
2410
2443
|
"type": "object",
|
|
2411
2444
|
"additionalProperties": false
|
|
2412
2445
|
},
|
|
2413
|
-
"__@replace@
|
|
2446
|
+
"__@replace@8201": {
|
|
2414
2447
|
"type": "object",
|
|
2415
2448
|
"additionalProperties": false
|
|
2416
2449
|
},
|
|
2417
|
-
"__@search@
|
|
2450
|
+
"__@search@8204": {
|
|
2418
2451
|
"type": "object",
|
|
2419
2452
|
"additionalProperties": false
|
|
2420
2453
|
},
|
|
2421
|
-
"__@split@
|
|
2454
|
+
"__@split@8206": {
|
|
2422
2455
|
"type": "object",
|
|
2423
2456
|
"additionalProperties": false
|
|
2424
2457
|
},
|
|
2425
|
-
"__@matchAll@
|
|
2458
|
+
"__@matchAll@8208": {
|
|
2426
2459
|
"type": "object",
|
|
2427
2460
|
"additionalProperties": false
|
|
2428
2461
|
}
|
|
@@ -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
|
+
}
|