@tramvai/cli 2.92.1 → 2.94.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/builder/webpack/devServer/pool/process/pool.js +4 -2
- package/lib/builder/webpack/devServer/pool/process/pool.js.map +1 -1
- package/lib/builder/webpack/devServer/pool/thread/pool.js +3 -1
- package/lib/builder/webpack/devServer/pool/thread/pool.js.map +1 -1
- package/lib/builder/webpack/tokens.d.ts +3 -0
- package/lib/commands/static/application.js +2 -3
- package/lib/commands/static/application.js.map +1 -1
- package/lib/commands/static/generate.js +3 -4
- package/lib/commands/static/generate.js.map +1 -1
- package/lib/di/tokens/config.d.ts +1 -0
- package/lib/library/webpack/application/client/dev.js +1 -1
- package/lib/library/webpack/application/client/dev.js.map +1 -1
- package/lib/library/webpack/application/server/dev.js +1 -1
- package/lib/library/webpack/application/server/dev.js.map +1 -1
- package/lib/library/webpack/blocks/dedupe.d.ts +4 -0
- package/lib/library/webpack/blocks/dedupe.js +12 -0
- package/lib/library/webpack/blocks/dedupe.js.map +1 -0
- package/lib/library/webpack/child-app/client/dev.js +1 -1
- package/lib/library/webpack/child-app/client/dev.js.map +1 -1
- package/lib/library/webpack/child-app/server/dev.js +1 -1
- package/lib/library/webpack/child-app/server/dev.js.map +1 -1
- package/lib/library/webpack/common/client/prod.js +5 -10
- package/lib/library/webpack/common/client/prod.js.map +1 -1
- package/lib/library/webpack/common/dev.d.ts +2 -1
- package/lib/library/webpack/common/dev.js +5 -1
- package/lib/library/webpack/common/dev.js.map +1 -1
- package/lib/library/webpack/common/server/prod.js +2 -9
- package/lib/library/webpack/common/server/prod.js.map +1 -1
- package/lib/library/webpack/module/client/dev.js +1 -1
- package/lib/library/webpack/module/client/dev.js.map +1 -1
- package/lib/library/webpack/module/server/dev.js +1 -1
- package/lib/library/webpack/module/server/dev.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +15 -0
- package/lib/typings/configEntry/cli.d.ts +6 -0
- package/lib/utils/dev-app/request.d.ts +3 -0
- package/lib/utils/dev-app/request.js +21 -0
- package/lib/utils/dev-app/request.js.map +1 -0
- package/package.json +3 -3
- package/schema.json +15 -0
- package/src/builder/webpack/devServer/pool/process/pool.ts +5 -1
- package/src/builder/webpack/devServer/pool/thread/pool.ts +4 -0
- package/src/commands/static/application.ts +2 -3
- package/src/commands/static/generate.ts +3 -4
- package/src/library/webpack/application/client/dev.ts +1 -1
- package/src/library/webpack/application/server/dev.ts +1 -1
- package/src/library/webpack/blocks/dedupe.ts +17 -0
- package/src/library/webpack/child-app/client/dev.ts +1 -1
- package/src/library/webpack/child-app/server/dev.ts +1 -1
- package/src/library/webpack/common/client/prod.ts +5 -7
- package/src/library/webpack/common/dev.ts +7 -1
- package/src/library/webpack/common/server/prod.ts +2 -9
- package/src/library/webpack/module/client/dev.ts +1 -1
- package/src/library/webpack/module/server/dev.ts +1 -1
- package/src/models/config.spec.ts +4 -0
- package/src/schema/autogeneratedSchema.json +15 -0
- package/src/schema/tramvai.spec.ts +2 -0
- package/src/typings/configEntry/cli.ts +6 -0
- package/src/utils/dev-app/request.ts +26 -0
- package/lib/commands/static/request.d.ts +0 -1
- package/lib/commands/static/request.js +0 -8
- package/lib/commands/static/request.js.map +0 -1
- package/src/commands/static/request.ts +0 -4
|
@@ -12,10 +12,11 @@ const ProcessWorkerBridge = (di) => {
|
|
|
12
12
|
const configManager = di.get(tokens_1.SERVER_CONFIG_MANAGER_TOKEN);
|
|
13
13
|
const stdout = di.get(tokens_2.STDOUT_TOKEN);
|
|
14
14
|
const stderr = di.get(tokens_2.STDERR_TOKEN);
|
|
15
|
+
let firstWorker = true;
|
|
15
16
|
return {
|
|
16
17
|
setup() {
|
|
17
18
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
cluster_1.default.
|
|
19
|
+
cluster_1.default.setupPrimary({
|
|
19
20
|
// указываем другой файл для работы cluster.fork
|
|
20
21
|
exec: path_1.default.resolve(__dirname, './worker.js'),
|
|
21
22
|
execArgv: [].concat(configManager.debug ? constants_1.DEBUG_ARGV : [], configManager.trace ? constants_1.TRACE_ARGV : []),
|
|
@@ -33,7 +34,8 @@ const ProcessWorkerBridge = (di) => {
|
|
|
33
34
|
const worker = cluster_1.default.fork(Object.assign(Object.assign({}, env), { NODE_ENV: 'development',
|
|
34
35
|
// port=0 позволяет запустить сервер на случайном доступном порту
|
|
35
36
|
// https://nodejs.org/dist/latest-v15.x/docs/api/all.html#cluster_how_it_works
|
|
36
|
-
PORT: `${configManager.port}`, PORT_SERVER: `${configManager.port}
|
|
37
|
+
PORT: `${configManager.port}`, PORT_SERVER: `${configManager.port}`, TRAMVAI_CLI_WATCH_INITIAL_BUILD: firstWorker }));
|
|
38
|
+
firstWorker = false;
|
|
37
39
|
(_a = worker.process.stdout) === null || _a === void 0 ? void 0 : _a.pipe(stdout);
|
|
38
40
|
(_b = worker.process.stderr) === null || _b === void 0 ? void 0 : _b.pipe(stderr);
|
|
39
41
|
return worker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../../src/builder/webpack/devServer/pool/process/pool.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,8DAA8B;AAE9B,+DAAyE;AACzE,4CAA8D;AAC9D,qDAKkC;AAE3B,MAAM,mBAAmB,GAAgC,CAAC,EAAE,EAAE,EAAE;IACrE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAwB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,oCAA2B,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../../src/builder/webpack/devServer/pool/process/pool.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAExB,8DAA8B;AAE9B,+DAAyE;AACzE,4CAA8D;AAC9D,qDAKkC;AAE3B,MAAM,mBAAmB,GAAgC,CAAC,EAAE,EAAE,EAAE;IACrE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAwB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,oCAA2B,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,EAAE,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC;IACpC,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,OAAO;QACC,KAAK;;gBACT,iBAAO,CAAC,YAAY,CAAC;oBACnB,gDAAgD;oBAChD,IAAI,EAAE,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC;oBAC5C,QAAQ,EAAG,EAAe,CAAC,MAAM,CAC/B,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE,EACrC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE,CACtC;oBACD,uGAAuG;oBACvG,WAAW,EAAE,OAAO,CAAC,SAAS;oBAC9B,MAAM,EAAE,IAAI;oBACZ,aAAa;oBACb,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,8BAAqB,CAAC;iBACnC,CAAC,CAAC;YACL,CAAC;SAAA;QACK,MAAM;;;gBACV,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,iCACtB,GAAG,KACN,QAAQ,EAAE,aAAa;oBACvB,iEAAiE;oBACjE,8EAA8E;oBAC9E,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,EAC7B,WAAW,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,EACpC,+BAA+B,EAAE,WAAW,IAC5C,CAAC;gBAEH,WAAW,GAAG,KAAK,CAAC;gBAEpB,MAAA,MAAM,CAAC,OAAO,CAAC,MAAM,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAA,MAAM,CAAC,OAAO,CAAC,MAAM,0CAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEpC,OAAO,MAAM,CAAC;;SACf;QACK,OAAO,CAAC,MAAM;;gBAClB,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE;oBACxB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAChC;YACH,CAAC;SAAA;QACK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;;gBAC9B,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;oBAErC,MAAM,CAAC,IAAI,CAAC;wBACV,QAAQ;wBACR,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;qBACjC,CAAC,CAAC;iBACJ;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AAzDW,QAAA,mBAAmB,uBAyD9B"}
|
|
@@ -10,6 +10,7 @@ const tokens_2 = require("../../../../../di/tokens");
|
|
|
10
10
|
const ThreadWorkerBridge = (di) => {
|
|
11
11
|
const { env } = di.get(tokens_2.COMMAND_PARAMETERS_TOKEN);
|
|
12
12
|
const configManager = di.get(tokens_1.SERVER_CONFIG_MANAGER_TOKEN);
|
|
13
|
+
let firstWorker = true;
|
|
13
14
|
return {
|
|
14
15
|
setup() {
|
|
15
16
|
return tslib_1.__awaiter(this, void 0, void 0, function* () { });
|
|
@@ -32,8 +33,9 @@ const ThreadWorkerBridge = (di) => {
|
|
|
32
33
|
env: Object.assign(Object.assign(Object.assign({}, process.env), env), { NODE_ENV: 'development',
|
|
33
34
|
// port=0 позволяет запустить сервер на случайном доступном порту
|
|
34
35
|
// https://nodejs.org/dist/latest-v15.x/docs/api/all.html#cluster_how_it_works
|
|
35
|
-
PORT: `${configManager.port}`, PORT_SERVER: `${configManager.port}
|
|
36
|
+
PORT: `${configManager.port}`, PORT_SERVER: `${configManager.port}`, TRAMVAI_CLI_WATCH_INITIAL_BUILD: firstWorker }),
|
|
36
37
|
});
|
|
38
|
+
firstWorker = false;
|
|
37
39
|
return worker;
|
|
38
40
|
});
|
|
39
41
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../../src/builder/webpack/devServer/pool/thread/pool.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,mDAAwC;AAExC,+DAAyE;AACzE,4CAA8D;AAC9D,qDAA2F;AAEpF,MAAM,kBAAkB,GAAgC,CAAC,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAwB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,oCAA2B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"pool.js","sourceRoot":"","sources":["../../../../../../src/builder/webpack/devServer/pool/thread/pool.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,mDAAwC;AAExC,+DAAyE;AACzE,4CAA8D;AAC9D,qDAA2F;AAEpF,MAAM,kBAAkB,GAAgC,CAAC,EAAE,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAwB,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,EAAE,CAAC,GAAG,CAAC,oCAA2B,CAAC,CAAC;IAC1D,IAAI,WAAW,GAAG,IAAI,CAAC;IAEvB,OAAO;QACC,KAAK;0EAAI,CAAC;SAAA;QACV,MAAM;;gBACV,2GAA2G;gBAC3G,0FAA0F;gBAC1F,4CAA4C;gBAC5C,gBAAgB;gBAChB,qEAAqE;gBACrE,gDAAgD;gBAChD,sEAAsE;gBACtE,yDAAyD;gBACzD,6FAA6F;gBAC7F,oFAAoF;gBACpF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,8BAAqB,CAAC,CAAC,CAAC;gBAE7C,MAAM,MAAM,GAAG,IAAI,uBAAM,CAAC,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;oBAChE,QAAQ,EAAE,EAAE,CAAC,MAAM,CACjB,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE,EACrC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAU,CAAC,CAAC,CAAC,EAAE,CACtC;oBACD,GAAG,gDACE,OAAO,CAAC,GAAG,GACX,GAAG,KACN,QAAQ,EAAE,aAAa;wBACvB,iEAAiE;wBACjE,8EAA8E;wBAC9E,IAAI,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,EAC7B,WAAW,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,EACpC,+BAA+B,EAAE,WAAW,GAC7C;iBACF,CAAC,CAAC;gBAEH,WAAW,GAAG,KAAK,CAAC;gBAEpB,OAAO,MAAM,CAAC;YAChB,CAAC;SAAA;QACK,OAAO,CAAC,MAAM;;gBAClB,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3B,CAAC;SAAA;QACK,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO;;gBAC9B,IAAI,IAAI,KAAK,QAAQ,EAAE;oBACrB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;oBAErC,MAAM,CAAC,WAAW,CAChB;wBACE,QAAQ;wBACR,MAAM;qBACP,EACD,CAAC,MAAM,CAAC,MAAM,CAAC,CAChB,CAAC;iBACH;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC,CAAC;AA1DW,QAAA,kBAAkB,sBA0D7B"}
|
|
@@ -72,6 +72,7 @@ export declare const CLIENT_CONFIG_MANAGER_TOKEN: {
|
|
|
72
72
|
};
|
|
73
73
|
dedupe: {
|
|
74
74
|
enabled: boolean;
|
|
75
|
+
enabledDev: boolean;
|
|
75
76
|
strategy: import("@tinkoff/webpack-dedupe-plugin").DeduplicateStrategy;
|
|
76
77
|
ignore?: string[];
|
|
77
78
|
};
|
|
@@ -185,6 +186,7 @@ export declare const CLIENT_MODERN_CONFIG_MANAGER_TOKEN: {
|
|
|
185
186
|
};
|
|
186
187
|
dedupe: {
|
|
187
188
|
enabled: boolean;
|
|
189
|
+
enabledDev: boolean;
|
|
188
190
|
strategy: import("@tinkoff/webpack-dedupe-plugin").DeduplicateStrategy;
|
|
189
191
|
ignore?: string[];
|
|
190
192
|
};
|
|
@@ -298,6 +300,7 @@ export declare const SERVER_CONFIG_MANAGER_TOKEN: {
|
|
|
298
300
|
};
|
|
299
301
|
dedupe: {
|
|
300
302
|
enabled: boolean;
|
|
303
|
+
enabledDev: boolean;
|
|
301
304
|
strategy: import("@tinkoff/webpack-dedupe-plugin").DeduplicateStrategy;
|
|
302
305
|
ignore?: string[];
|
|
303
306
|
};
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.staticApp = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const propOr_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/propOr"));
|
|
6
5
|
const intersection_1 = tslib_1.__importDefault(require("@tinkoff/utils/array/intersection"));
|
|
7
6
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
8
7
|
const execa_1 = require("execa");
|
|
9
8
|
const wait_on_1 = tslib_1.__importDefault(require("wait-on"));
|
|
10
9
|
const env_ci_1 = tslib_1.__importDefault(require("env-ci"));
|
|
11
10
|
const configManager_1 = require("../../config/configManager");
|
|
12
|
-
const request_1 = require("./request");
|
|
13
11
|
const generate_1 = require("./generate");
|
|
14
12
|
const copyStatsJsonFile_1 = require("../../builder/webpack/utils/copyStatsJsonFile");
|
|
15
13
|
const safeRequire_1 = require("../../utils/safeRequire");
|
|
@@ -17,6 +15,7 @@ const index_1 = require("../index");
|
|
|
17
15
|
const staticServer_1 = require("./staticServer");
|
|
18
16
|
const server_1 = require("./server");
|
|
19
17
|
const handle_server_output_1 = require("./utils/handle-server-output");
|
|
18
|
+
const request_1 = require("../../utils/dev-app/request");
|
|
20
19
|
// eslint-disable-next-line max-statements
|
|
21
20
|
const staticApp = (context, configEntry, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
22
21
|
const clientConfigManager = (0, configManager_1.createConfigManager)(configEntry, Object.assign(Object.assign({ env: 'production' }, options), { buildType: 'client', modern: false }));
|
|
@@ -88,7 +87,7 @@ const staticApp = (context, configEntry, options) => tslib_1.__awaiter(void 0, v
|
|
|
88
87
|
event: 'COMMAND:STATIC:ROUTES_FETCH',
|
|
89
88
|
message: `message: server started, fetch application routes`,
|
|
90
89
|
});
|
|
91
|
-
let paths =
|
|
90
|
+
let paths = yield (0, request_1.appBundleInfo)(serverConfigManager);
|
|
92
91
|
if (options.onlyPages) {
|
|
93
92
|
paths = (0, intersection_1.default)(paths, options.onlyPages);
|
|
94
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/commands/static/application.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../../src/commands/static/application.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,15 +5,14 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const promise_queue_1 = tslib_1.__importDefault(require("promise-queue"));
|
|
7
7
|
const fs_extra_1 = require("fs-extra");
|
|
8
|
-
const request_1 = require("
|
|
8
|
+
const request_1 = require("../../utils/dev-app/request");
|
|
9
9
|
const MAX_CONCURRENT = 10;
|
|
10
10
|
const DYNAMIC_PAGE_REGEX = /\/:.+\//g;
|
|
11
11
|
const generateStatic = (context, configManager, paths) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
12
12
|
const q = new promise_queue_1.default(MAX_CONCURRENT);
|
|
13
13
|
const promises = [];
|
|
14
|
-
const {
|
|
14
|
+
const { rootDir, output } = configManager;
|
|
15
15
|
const staticPath = (0, path_1.resolve)(rootDir, output.static);
|
|
16
|
-
const serverPath = `http://${host}:${port}`;
|
|
17
16
|
for (const path of paths) {
|
|
18
17
|
promises.push(q.add(() => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
19
18
|
// @todo need something similar to https://nextjs.org/docs/basic-features/data-fetching#getstaticpaths-static-generation
|
|
@@ -31,7 +30,7 @@ const generateStatic = (context, configManager, paths) => tslib_1.__awaiter(void
|
|
|
31
30
|
event: 'COMMAND:STATIC:PAGE_FETCH',
|
|
32
31
|
message: `path: ${path}, message: start fetching page`,
|
|
33
32
|
});
|
|
34
|
-
const html = yield (0, request_1.
|
|
33
|
+
const html = yield (0, request_1.appRequest)(configManager, path);
|
|
35
34
|
yield (0, fs_extra_1.outputFile)((0, path_1.join)(staticPath, path, 'index.html'), html);
|
|
36
35
|
context.logger.event({
|
|
37
36
|
type: 'debug',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/static/generate.ts"],"names":[],"mappings":";;;;AAAA,+BAAqC;AACrC,0EAAmC;AACnC,uCAAsC;
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/static/generate.ts"],"names":[],"mappings":";;;;AAAA,+BAAqC;AACrC,0EAAmC;AACnC,uCAAsC;AAItC,yDAAyD;AAEzD,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE/B,MAAM,cAAc,GAAG,CAC5B,OAAgB,EAChB,aAAoD,EACpD,KAAe,EACf,EAAE;IACF,MAAM,CAAC,GAAG,IAAI,uBAAM,CAAC,cAAc,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;IAEpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,QAAQ,CAAC,IAAI,CACX,CAAC,CAAC,GAAG,CAAC,GAAS,EAAE;YACf,wHAAwH;YACxH,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnB,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,yCAAyC;oBAChD,OAAO,EAAE,SAAS,IAAI,0DAA0D;iBACjF,CAAC,CAAC;gBACH,OAAO;aACR;YAED,IAAI;gBACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,2BAA2B;oBAClC,OAAO,EAAE,SAAS,IAAI,gCAAgC;iBACvD,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,IAAA,oBAAU,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAEnD,MAAM,IAAA,qBAAU,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;gBAE7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,6BAA6B;oBACpC,OAAO,EAAE,SAAS,IAAI,sCAAsC;iBAC7D,CAAC,CAAC;aACJ;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBACnB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,sBAAsB;oBAC7B,OAAO,EAAE,SAAS,IAAI,cAAc,CAAC,CAAC,OAAO,EAAE;iBAChD,CAAC,CAAC;aACJ;QACH,CAAC,CAAA,CAAC,CACH,CAAC;KACH;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAA,CAAC;AApDW,QAAA,cAAc,kBAoDzB"}
|
|
@@ -22,7 +22,7 @@ const webpackClientConfig = ({ configManager, showProgress, }) => {
|
|
|
22
22
|
var _a, _b;
|
|
23
23
|
const config = new webpack_chain_1.default();
|
|
24
24
|
config.batch((0, common_1.default)(configManager));
|
|
25
|
-
config.batch((0, dev_1.default)());
|
|
25
|
+
config.batch((0, dev_1.default)(configManager));
|
|
26
26
|
config.batch((0, dev_2.commonApplicationDev)({
|
|
27
27
|
entry: path_1.default.resolve(configManager.rootDir, `${configManager.root}/index`),
|
|
28
28
|
onlyBundles: configManager.onlyBundles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/dev.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAC9B,0EAAmC;AACnC,wDAAwB;AAExB,oEAAoC;AACpC,gHAAsE;AAItE,8EAAgD;AAChD,oFAAsD;AAEtD,gGAAgE;AAGhE,8DAA8B;AAC9B,mEAAyC;AACzC,gCAA8C;AAE9C,iFAAiD;AACjD,6FAAqE;AACrE,yDAAsD;AACtD,oEAAwE;AAGxE,0CAA0C;AACnC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ const webpackServerConfig = ({ configManager, showProgress, }) => {
|
|
|
16
16
|
var _a;
|
|
17
17
|
const config = new webpack_chain_1.default();
|
|
18
18
|
config.batch((0, common_1.default)(configManager));
|
|
19
|
-
config.batch((0, dev_1.default)());
|
|
19
|
+
config.batch((0, dev_1.default)(configManager));
|
|
20
20
|
config.batch((0, dev_2.commonApplicationDev)({
|
|
21
21
|
entry: path_1.default.resolve(configManager.rootDir, `${configManager.root}/index`),
|
|
22
22
|
onlyBundles: configManager.onlyBundles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/server/dev.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,0EAAmC;AACnC,oEAAoC;AAKpC,gGAAgE;AAChE,8DAA8B;AAC9B,mEAAyC;AACzC,gCAA8C;AAC9C,uFAAuD;AAEvD,iFAAiD;AACjD,6FAAqE;AAE9D,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/server/dev.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,0EAAmC;AACnC,oEAAoC;AAKpC,gGAAgE;AAChE,8DAA8B;AAC9B,mEAAyC;AACzC,gCAA8C;AAC9C,uFAAuD;AAEvD,iFAAiD;AACjD,6FAAqE;AAE9D,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,EAAC,aAAa,CAAC,CAAC,CAAC;IACvC,MAAM,CAAC,KAAK,CACV,IAAA,0BAAoB,EAAC;QACnB,KAAK,EAAE,cAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,IAAI,QAAQ,CAAC;QACzE,WAAW,EAAE,aAAa,CAAC,WAAW;KACvC,CAAC,CACH,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,IAAA,uBAAa,EAAC,aAAa,CAAC,CAAC,CAAC;IAE3C,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,aAAa,CAAC,SAAS,EAAE;QAC3B,MAAM,CAAC,KAAK,CAAC,IAAA,oBAAU,EAAC,aAAa,CAAC,CAAC,CAAC;KACzC;IAED,IAAI,aAAa,CAAC,eAAe,EAAE;QACjC,MAAM,CAAC,YAAY,CAAC;YAClB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,SAAS,CACd,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,GAAG,CACzF,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAC3B,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAE/C,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,oBAAU,EAAE;YACxC;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;gBACf,SAAS,EAAE,CAAC,IAAI,eAAa,EAAE,CAAC;aACjC;SACF,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,OAAO,EAAE;YACzB,MAAM;iBACH,MAAM,CAAC,UAAU,CAAC;iBAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,CAAC,CAAC,CAAC,KAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,IAAG,CAAC,CAAC;SAC3E;KACF;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EACrD,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,EACnE,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC;KAEtE,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,2BAAiB,EAAE;QACnD;YACE,UAAU,EACR,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,mCACzB,WAAW,aAAa,CAAC,UAAU,IACjC,aAAa,CAAC,UAChB,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI;SACzD;KACF,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA3EW,QAAA,mBAAmB,uBA2E9B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type Config from 'webpack-chain';
|
|
2
|
+
import type { DedupePluginOptions } from '@tinkoff/webpack-dedupe-plugin';
|
|
3
|
+
import type { CliConfigEntry, ConfigManager } from '../../../api';
|
|
4
|
+
export declare const dedupe: (configManager: ConfigManager<CliConfigEntry>, options?: Partial<DedupePluginOptions>) => (config: Config) => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dedupe = void 0;
|
|
4
|
+
const webpack_dedupe_plugin_1 = require("@tinkoff/webpack-dedupe-plugin");
|
|
5
|
+
const dedupe = (configManager, options) => (config) => {
|
|
6
|
+
var _a;
|
|
7
|
+
config.plugin('dedupe-plugin').use(webpack_dedupe_plugin_1.DedupePlugin, [
|
|
8
|
+
Object.assign({ strategy: configManager.dedupe.strategy, ignorePackages: (_a = configManager.dedupe.ignore) === null || _a === void 0 ? void 0 : _a.map((ignore) => new RegExp(`^${ignore}`)), showLogs: false }, options),
|
|
9
|
+
]);
|
|
10
|
+
};
|
|
11
|
+
exports.dedupe = dedupe;
|
|
12
|
+
//# sourceMappingURL=dedupe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dedupe.js","sourceRoot":"","sources":["../../../../src/library/webpack/blocks/dedupe.ts"],"names":[],"mappings":";;;AACA,0EAA8D;AAIvD,MAAM,MAAM,GACjB,CAAC,aAA4C,EAAE,OAAsC,EAAE,EAAE,CACzF,CAAC,MAAc,EAAE,EAAE;;IACjB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,oCAAY,EAAE;QAC/C,gBACE,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EACvC,cAAc,EAAE,MAAA,aAAa,CAAC,MAAM,CAAC,MAAM,0CAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,EACtF,QAAQ,EAAE,KAAK,IACZ,OAAO,CACY;KACzB,CAAC,CAAC;AACL,CAAC,CAAC;AAXS,QAAA,MAAM,UAWf"}
|
|
@@ -13,7 +13,7 @@ const webpackClientConfig = ({ configManager, showProgress, }) => {
|
|
|
13
13
|
var _a, _b;
|
|
14
14
|
const config = new webpack_chain_1.default();
|
|
15
15
|
config.batch((0, common_1.default)(configManager));
|
|
16
|
-
config.batch((0, dev_1.default)());
|
|
16
|
+
config.batch((0, dev_1.default)(configManager));
|
|
17
17
|
config.mode('development');
|
|
18
18
|
if (showProgress) {
|
|
19
19
|
config.plugin('progress').use(webpackbar_1.default, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/child-app/client/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AACpC,8DAA8B;AAC9B,gHAAsE;AAEtE,8DAA8B;AAC9B,mEAAyC;AAEzC,yDAAsD;AAG/C,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/child-app/client/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AACpC,8DAA8B;AAC9B,gHAAsE;AAEtE,8DAA8B;AAC9B,mEAAyC;AAEzC,yDAAsD;AAG/C,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,EAAC,aAAa,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,oBAAU,EAAE;YACxC;gBACE,IAAI,EAAE,kBAAkB;aACzB;SACF,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,eAAe;KAE1C,CAAC,CAAC;IAEH,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAErC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,EAAE;QACvB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,iBAAO,CAAC,0BAA0B,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,sCAAkB,EAAE;4CAEhD,UAAU,CAAC,OAAO,KACrB,OAAO,EACL,OAAO,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,OAAO,CAAA,KAAK,SAAS;oBAC9C,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;oBAC5B,CAAC,mBACM,MAAA,UAAU,CAAC,OAAO,0CAAE,OAAO,CAC/B;SAEV,CAAC,CAAC;QAEH,IAAA,yBAAW,EAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;YAC5C,MAAM,EAAE;gBACN,qFAAqF;aACtF;SACF,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AArDW,QAAA,mBAAmB,uBAqD9B"}
|
|
@@ -9,7 +9,7 @@ const dev_1 = tslib_1.__importDefault(require("../../common/dev"));
|
|
|
9
9
|
const webpackServerConfig = ({ configManager, showProgress, }) => {
|
|
10
10
|
const config = new webpack_chain_1.default();
|
|
11
11
|
config.batch((0, common_1.default)(configManager));
|
|
12
|
-
config.batch((0, dev_1.default)());
|
|
12
|
+
config.batch((0, dev_1.default)(configManager));
|
|
13
13
|
config.mode('development');
|
|
14
14
|
if (showProgress) {
|
|
15
15
|
config.plugin('progress').use(webpackbar_1.default, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/child-app/server/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAEpC,8DAA8B;AAC9B,mEAAyC;AAIlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/child-app/server/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAEpC,8DAA8B;AAC9B,mEAAyC;AAIlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,EAAC,aAAa,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,oBAAU,EAAE;YACxC;gBACE,IAAI,EAAE,kBAAkB;aACzB;SACF,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,eAAe;KAE1C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA9BW,QAAA,mBAAmB,uBA8B9B"}
|
|
@@ -4,7 +4,7 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const once_1 = tslib_1.__importDefault(require("@tinkoff/utils/function/once"));
|
|
5
5
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
6
6
|
const plugin_1 = require("inspectpack/plugin");
|
|
7
|
-
const
|
|
7
|
+
const dedupe_1 = require("../../blocks/dedupe");
|
|
8
8
|
const onDedupeInfo = (0, once_1.default)((logInfo) => {
|
|
9
9
|
if (logInfo.size > 0) {
|
|
10
10
|
console.warn(`${chalk_1.default.blue('Duplicates were found and merged during build.')}
|
|
@@ -14,20 +14,15 @@ For further details refer to doc - https://tramvai.dev/docs/mistakes/duplicate-d
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
exports.default = (configManager) => (config) => {
|
|
17
|
-
var _a;
|
|
18
17
|
config.mode('production');
|
|
19
18
|
config.plugin('define').tap((args) => [
|
|
20
19
|
Object.assign(Object.assign({}, args[0]), { 'process.env.NODE_ENV': JSON.stringify('production') }),
|
|
21
20
|
]);
|
|
22
21
|
if (configManager.dedupe.enabled) {
|
|
23
|
-
config.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
showLogs: !configManager.modern,
|
|
28
|
-
onDedupeInfo,
|
|
29
|
-
},
|
|
30
|
-
]);
|
|
22
|
+
config.batch((0, dedupe_1.dedupe)(configManager, {
|
|
23
|
+
showLogs: !configManager.modern,
|
|
24
|
+
onDedupeInfo,
|
|
25
|
+
}));
|
|
31
26
|
}
|
|
32
27
|
else {
|
|
33
28
|
config.plugin('duplicates-plugin').use(plugin_1.DuplicatesPlugin, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prod.js","sourceRoot":"","sources":["../../../../../src/library/webpack/common/client/prod.ts"],"names":[],"mappings":";;;AAAA,gFAAgD;AAEhD,0DAA0B;AAC1B,+CAAsD;
|
|
1
|
+
{"version":3,"file":"prod.js","sourceRoot":"","sources":["../../../../../src/library/webpack/common/client/prod.ts"],"names":[],"mappings":";;;AAAA,gFAAgD;AAEhD,0DAA0B;AAC1B,+CAAsD;AAItD,gDAA6C;AAE7C,MAAM,YAAY,GAAG,IAAA,cAAI,EAAsC,CAAC,OAAO,EAAE,EAAE;IACzE,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC;;;KAG3E,CAAC,CAAC;KACJ;AACH,CAAC,CAAC,CAAC;AAEH,kBAAe,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAClF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KAEvD,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE;QAChC,MAAM,CAAC,KAAK,CACV,IAAA,eAAM,EAAC,aAAa,EAAE;YACpB,QAAQ,EAAE,CAAC,aAAa,CAAC,MAAM;YAC/B,YAAY;SACb,CAAC,CACH,CAAC;KACH;SAAM;QACL,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,yBAAgB,EAAE;YACvD;gBACE,OAAO,EAAE,IAAI;gBACb,+BAA+B;gBAC/B,+EAA+E;gBAC/E,WAAW,EAAE,CAAC,MAAc,EAAE,EAAE;oBAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvB,CAAC;aACF;SACF,CAAC,CAAC;KACJ;AACH,CAAC,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type Config from 'webpack-chain';
|
|
2
|
-
|
|
2
|
+
import type { CliConfigEntry, ConfigManager } from '../../../api';
|
|
3
|
+
declare const _default: (configManager: ConfigManager<CliConfigEntry>) => (config: Config) => Config;
|
|
3
4
|
export default _default;
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const case_sensitive_paths_webpack_plugin_1 = tslib_1.__importDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
5
5
|
const warningsFilter_1 = require("../utils/warningsFilter");
|
|
6
|
-
|
|
6
|
+
const dedupe_1 = require("../blocks/dedupe");
|
|
7
|
+
exports.default = (configManager) => (config) => {
|
|
7
8
|
config.plugin('case-sensitive-path').use(case_sensitive_paths_webpack_plugin_1.default);
|
|
8
9
|
config.stats({
|
|
9
10
|
preset: 'errors-warnings',
|
|
@@ -14,6 +15,9 @@ exports.default = () => (config) => {
|
|
|
14
15
|
config.set('infrastructureLogging', { level: 'warn' });
|
|
15
16
|
config.output.pathinfo(false);
|
|
16
17
|
config.module.set('unsafeCache', true);
|
|
18
|
+
if (configManager.dedupe.enabledDev) {
|
|
19
|
+
config.batch((0, dedupe_1.dedupe)(configManager));
|
|
20
|
+
}
|
|
17
21
|
return config;
|
|
18
22
|
};
|
|
19
23
|
//# sourceMappingURL=dev.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../src/library/webpack/common/dev.ts"],"names":[],"mappings":";;;AACA,sHAA2E;AAC3E,4DAAyD;AAEzD,kBAAe,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../src/library/webpack/common/dev.ts"],"names":[],"mappings":";;;AACA,sHAA2E;AAC3E,4DAAyD;AAEzD,6CAA0C;AAE1C,kBAAe,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAClF,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,6CAAwB,CAAC,CAAC;IAEnE,MAAM,CAAC,KAAK,CAAC;QACX,MAAM,EAAE,iBAAiB;QACzB,2EAA2E;QAC3E,aAAa,EAAE,KAAK;KACrB,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,+BAAc,CAAC,CAAC;IAE7C,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAEvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IAEvC,IAAI,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE;QACnC,MAAM,CAAC,KAAK,CAAC,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,CAAC;KACrC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const dedupe_1 = require("../../blocks/dedupe");
|
|
4
4
|
exports.default = (configManager) => (config) => {
|
|
5
|
-
var _a;
|
|
6
5
|
config.mode('production');
|
|
7
6
|
config.plugin('define').tap((args) => [
|
|
8
7
|
Object.assign(Object.assign({}, args[0]), { 'process.env.NODE_ENV': JSON.stringify('production') }),
|
|
9
8
|
]);
|
|
10
9
|
if (configManager.dedupe.enabled) {
|
|
11
|
-
config.
|
|
12
|
-
{
|
|
13
|
-
strategy: configManager.dedupe.strategy,
|
|
14
|
-
showLogs: false,
|
|
15
|
-
ignorePackages: (_a = configManager.dedupe.ignore) === null || _a === void 0 ? void 0 : _a.map((ignore) => new RegExp(`^${ignore}`)),
|
|
16
|
-
},
|
|
17
|
-
]);
|
|
10
|
+
config.batch((0, dedupe_1.dedupe)(configManager));
|
|
18
11
|
}
|
|
19
12
|
};
|
|
20
13
|
//# sourceMappingURL=prod.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prod.js","sourceRoot":"","sources":["../../../../../src/library/webpack/common/server/prod.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"prod.js","sourceRoot":"","sources":["../../../../../src/library/webpack/common/server/prod.ts"],"names":[],"mappings":";;AAGA,gDAA6C;AAE7C,kBAAe,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAClF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE1B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KAEvD,CAAC,CAAC;IAEH,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,EAAE;QAChC,MAAM,CAAC,KAAK,CAAC,IAAA,eAAM,EAAC,aAAa,CAAC,CAAC,CAAC;KACrC;AACH,CAAC,CAAC"}
|
|
@@ -9,7 +9,7 @@ const dev_1 = tslib_1.__importDefault(require("../../common/dev"));
|
|
|
9
9
|
const webpackClientConfig = ({ configManager, showProgress, }) => {
|
|
10
10
|
const config = new webpack_chain_1.default();
|
|
11
11
|
config.batch((0, common_1.default)(configManager));
|
|
12
|
-
config.batch((0, dev_1.default)());
|
|
12
|
+
config.batch((0, dev_1.default)(configManager));
|
|
13
13
|
config.mode('development');
|
|
14
14
|
if (showProgress) {
|
|
15
15
|
config.plugin('progress').use(webpackbar_1.default, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/module/client/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAGpC,8DAA8B;AAC9B,mEAAyC;AAGlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/module/client/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAGpC,8DAA8B;AAC9B,mEAAyC;AAGlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,EAAC,aAAa,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,oBAAU,EAAE;YACxC;gBACE,IAAI,EAAE,eAAe;aACtB;SACF,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,eAAe;KAE1C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA9BW,QAAA,mBAAmB,uBA8B9B"}
|
|
@@ -9,7 +9,7 @@ const dev_1 = tslib_1.__importDefault(require("../../common/dev"));
|
|
|
9
9
|
const webpackServerConfig = ({ configManager, showProgress, }) => {
|
|
10
10
|
const config = new webpack_chain_1.default();
|
|
11
11
|
config.batch((0, common_1.default)(configManager));
|
|
12
|
-
config.batch((0, dev_1.default)());
|
|
12
|
+
config.batch((0, dev_1.default)(configManager));
|
|
13
13
|
config.mode('development');
|
|
14
14
|
if (showProgress) {
|
|
15
15
|
config.plugin('progress').use(webpackbar_1.default, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/module/server/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAGpC,8DAA8B;AAC9B,mEAAyC;AAGlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../../../../src/library/webpack/module/server/dev.ts"],"names":[],"mappings":";;;;AAAA,0EAAmC;AACnC,oEAAoC;AAGpC,8DAA8B;AAC9B,mEAAyC;AAGlC,MAAM,mBAAmB,GAAG,CAAC,EAClC,aAAa,EACb,YAAY,GAIb,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,IAAI,uBAAM,EAAE,CAAC;IAE5B,MAAM,CAAC,KAAK,CAAC,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,IAAA,aAAS,EAAC,aAAa,CAAC,CAAC,CAAC;IAEvC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,oBAAU,EAAE;YACxC;gBACE,IAAI,EAAE,eAAe;aACtB;SACF,CAAC,CAAC;KACJ;IAED,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wCAE/B,IAAI,CAAC,CAAC,CAAC,KACV,sBAAsB,EAAE,eAAe;KAE1C,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA9BW,QAAA,mBAAmB,uBA8B9B"}
|
|
@@ -818,6 +818,11 @@
|
|
|
818
818
|
"default": true,
|
|
819
819
|
"type": "boolean"
|
|
820
820
|
},
|
|
821
|
+
"enabledDev": {
|
|
822
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
823
|
+
"default": false,
|
|
824
|
+
"type": "boolean"
|
|
825
|
+
},
|
|
821
826
|
"strategy": {
|
|
822
827
|
"title": "Strategy for DedupePlugin",
|
|
823
828
|
"default": "equality",
|
|
@@ -1334,6 +1339,11 @@
|
|
|
1334
1339
|
"default": true,
|
|
1335
1340
|
"type": "boolean"
|
|
1336
1341
|
},
|
|
1342
|
+
"enabledDev": {
|
|
1343
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1344
|
+
"default": false,
|
|
1345
|
+
"type": "boolean"
|
|
1346
|
+
},
|
|
1337
1347
|
"strategy": {
|
|
1338
1348
|
"title": "Strategy for DedupePlugin",
|
|
1339
1349
|
"default": "equality",
|
|
@@ -1850,6 +1860,11 @@
|
|
|
1850
1860
|
"default": true,
|
|
1851
1861
|
"type": "boolean"
|
|
1852
1862
|
},
|
|
1863
|
+
"enabledDev": {
|
|
1864
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1865
|
+
"default": false,
|
|
1866
|
+
"type": "boolean"
|
|
1867
|
+
},
|
|
1853
1868
|
"strategy": {
|
|
1854
1869
|
"title": "Strategy for DedupePlugin",
|
|
1855
1870
|
"default": "equality",
|
|
@@ -198,6 +198,12 @@ export interface CliConfigEntry extends ConfigEntry {
|
|
|
198
198
|
* @default true
|
|
199
199
|
*/
|
|
200
200
|
enabled: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* @title Does DedupePlugin should be enabled in development mode
|
|
203
|
+
* Why it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)
|
|
204
|
+
* @default false
|
|
205
|
+
*/
|
|
206
|
+
enabledDev: boolean;
|
|
201
207
|
/**
|
|
202
208
|
* @title Strategy for DedupePlugin
|
|
203
209
|
* @default "equality"
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { ConfigManager } from '../../config/configManager';
|
|
2
|
+
export declare const appRequest: <T>(configManager: ConfigManager, path: string) => import("@tinkoff/request-core").MakeRequestResult<T>;
|
|
3
|
+
export declare const appBundleInfo: (configManager: ConfigManager) => Promise<string[]>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.appBundleInfo = exports.appRequest = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const propOr_1 = tslib_1.__importDefault(require("@tinkoff/utils/object/propOr"));
|
|
6
|
+
const request_core_1 = tslib_1.__importDefault(require("@tinkoff/request-core"));
|
|
7
|
+
const request_plugin_protocol_http_1 = tslib_1.__importDefault(require("@tinkoff/request-plugin-protocol-http"));
|
|
8
|
+
const request = (0, request_core_1.default)([(0, request_plugin_protocol_http_1.default)()]);
|
|
9
|
+
const appRequest = (configManager, path) => {
|
|
10
|
+
const { host, port } = configManager;
|
|
11
|
+
const serverPath = `http://${host}:${port}`;
|
|
12
|
+
return request({ url: `${serverPath}${path}` });
|
|
13
|
+
};
|
|
14
|
+
exports.appRequest = appRequest;
|
|
15
|
+
const appBundleInfo = (configManager) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
+
const { name } = configManager;
|
|
17
|
+
const response = yield (0, exports.appRequest)(configManager, `/${name}/papi/bundleInfo`);
|
|
18
|
+
return (0, propOr_1.default)('payload', [], response);
|
|
19
|
+
});
|
|
20
|
+
exports.appBundleInfo = appBundleInfo;
|
|
21
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/utils/dev-app/request.ts"],"names":[],"mappings":";;;;AAAA,kFAAkD;AAClD,iFAAkD;AAClD,iHAAyD;AAGzD,MAAM,OAAO,GAAG,IAAA,sBAAa,EAAC,CAAC,IAAA,sCAAI,GAAE,CAAC,CAAC,CAAC;AAEjC,MAAM,UAAU,GAAG,CAAI,aAA4B,EAAE,IAAY,EAAE,EAAE;IAC1E,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IACrC,MAAM,UAAU,GAAG,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC;IAE5C,OAAO,OAAO,CAAI,EAAE,GAAG,EAAE,GAAG,UAAU,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC;AALW,QAAA,UAAU,cAKrB;AAOK,MAAM,aAAa,GAAG,CAAO,aAA4B,EAAE,EAAE;IAClE,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAE/B,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAU,EAAqB,aAAa,EAAE,IAAI,IAAI,kBAAkB,CAAC,CAAC;IAEjG,OAAO,IAAA,gBAAM,EAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC,CAAA,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.94.0",
|
|
4
4
|
"description": "Cli инструмент для сборки и запуска приложений",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"@tinkoff/request-core": "^0.9.2",
|
|
70
70
|
"@tinkoff/request-plugin-protocol-http": "^0.11.6",
|
|
71
71
|
"@tinkoff/utils": "^2.1.3",
|
|
72
|
-
"@tinkoff/webpack-dedupe-plugin": "1.0.
|
|
72
|
+
"@tinkoff/webpack-dedupe-plugin": "1.0.5",
|
|
73
73
|
"@tramvai/build": "3.1.3",
|
|
74
|
-
"@tramvai/react": "2.
|
|
74
|
+
"@tramvai/react": "2.94.0",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.4.11",
|
|
76
76
|
"@tramvai/tools-migrate": "0.6.14",
|
|
77
77
|
"ajv": "^6.12.6",
|
package/schema.json
CHANGED
|
@@ -839,6 +839,11 @@
|
|
|
839
839
|
"default": true,
|
|
840
840
|
"type": "boolean"
|
|
841
841
|
},
|
|
842
|
+
"enabledDev": {
|
|
843
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
844
|
+
"default": false,
|
|
845
|
+
"type": "boolean"
|
|
846
|
+
},
|
|
842
847
|
"strategy": {
|
|
843
848
|
"title": "Strategy for DedupePlugin",
|
|
844
849
|
"default": "equality",
|
|
@@ -1363,6 +1368,11 @@
|
|
|
1363
1368
|
"default": true,
|
|
1364
1369
|
"type": "boolean"
|
|
1365
1370
|
},
|
|
1371
|
+
"enabledDev": {
|
|
1372
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1373
|
+
"default": false,
|
|
1374
|
+
"type": "boolean"
|
|
1375
|
+
},
|
|
1366
1376
|
"strategy": {
|
|
1367
1377
|
"title": "Strategy for DedupePlugin",
|
|
1368
1378
|
"default": "equality",
|
|
@@ -1887,6 +1897,11 @@
|
|
|
1887
1897
|
"default": true,
|
|
1888
1898
|
"type": "boolean"
|
|
1889
1899
|
},
|
|
1900
|
+
"enabledDev": {
|
|
1901
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1902
|
+
"default": false,
|
|
1903
|
+
"type": "boolean"
|
|
1904
|
+
},
|
|
1890
1905
|
"strategy": {
|
|
1891
1906
|
"title": "Strategy for DedupePlugin",
|
|
1892
1907
|
"default": "equality",
|
|
@@ -16,10 +16,11 @@ export const ProcessWorkerBridge: WorkerBridgeFactory<Worker> = (di) => {
|
|
|
16
16
|
const configManager = di.get(SERVER_CONFIG_MANAGER_TOKEN);
|
|
17
17
|
const stdout = di.get(STDOUT_TOKEN);
|
|
18
18
|
const stderr = di.get(STDERR_TOKEN);
|
|
19
|
+
let firstWorker = true;
|
|
19
20
|
|
|
20
21
|
return {
|
|
21
22
|
async setup() {
|
|
22
|
-
cluster.
|
|
23
|
+
cluster.setupPrimary({
|
|
23
24
|
// указываем другой файл для работы cluster.fork
|
|
24
25
|
exec: path.resolve(__dirname, './worker.js'),
|
|
25
26
|
execArgv: ([] as string[]).concat(
|
|
@@ -41,8 +42,11 @@ export const ProcessWorkerBridge: WorkerBridgeFactory<Worker> = (di) => {
|
|
|
41
42
|
// https://nodejs.org/dist/latest-v15.x/docs/api/all.html#cluster_how_it_works
|
|
42
43
|
PORT: `${configManager.port}`,
|
|
43
44
|
PORT_SERVER: `${configManager.port}`,
|
|
45
|
+
TRAMVAI_CLI_WATCH_INITIAL_BUILD: firstWorker,
|
|
44
46
|
});
|
|
45
47
|
|
|
48
|
+
firstWorker = false;
|
|
49
|
+
|
|
46
50
|
worker.process.stdout?.pipe(stdout);
|
|
47
51
|
worker.process.stderr?.pipe(stderr);
|
|
48
52
|
|
|
@@ -8,6 +8,7 @@ import { COMMAND_PARAMETERS_TOKEN, CONFIG_ROOT_DIR_TOKEN } from '../../../../../
|
|
|
8
8
|
export const ThreadWorkerBridge: WorkerBridgeFactory<Worker> = (di) => {
|
|
9
9
|
const { env } = di.get(COMMAND_PARAMETERS_TOKEN);
|
|
10
10
|
const configManager = di.get(SERVER_CONFIG_MANAGER_TOKEN);
|
|
11
|
+
let firstWorker = true;
|
|
11
12
|
|
|
12
13
|
return {
|
|
13
14
|
async setup() {},
|
|
@@ -37,9 +38,12 @@ export const ThreadWorkerBridge: WorkerBridgeFactory<Worker> = (di) => {
|
|
|
37
38
|
// https://nodejs.org/dist/latest-v15.x/docs/api/all.html#cluster_how_it_works
|
|
38
39
|
PORT: `${configManager.port}`,
|
|
39
40
|
PORT_SERVER: `${configManager.port}`,
|
|
41
|
+
TRAMVAI_CLI_WATCH_INITIAL_BUILD: firstWorker,
|
|
40
42
|
},
|
|
41
43
|
});
|
|
42
44
|
|
|
45
|
+
firstWorker = false;
|
|
46
|
+
|
|
43
47
|
return worker;
|
|
44
48
|
},
|
|
45
49
|
async destroy(worker) {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import propOr from '@tinkoff/utils/object/propOr';
|
|
2
1
|
import intersection from '@tinkoff/utils/array/intersection';
|
|
3
2
|
|
|
4
3
|
import path from 'path';
|
|
@@ -10,7 +9,6 @@ import type { CommandResult } from '../../models/command';
|
|
|
10
9
|
import type { ApplicationConfigEntry } from '../../typings/configEntry/application';
|
|
11
10
|
import type { Params } from './command';
|
|
12
11
|
import { createConfigManager } from '../../config/configManager';
|
|
13
|
-
import { request } from './request';
|
|
14
12
|
import { generateStatic } from './generate';
|
|
15
13
|
import { copyStatsJsonFileToServerDirectory } from '../../builder/webpack/utils/copyStatsJsonFile';
|
|
16
14
|
import { safeRequire } from '../../utils/safeRequire';
|
|
@@ -18,6 +16,7 @@ import { app } from '../index';
|
|
|
18
16
|
import { startStaticServer } from './staticServer';
|
|
19
17
|
import { startServer } from './server';
|
|
20
18
|
import { handleServerOutput } from './utils/handle-server-output';
|
|
19
|
+
import { appBundleInfo } from '../../utils/dev-app/request';
|
|
21
20
|
|
|
22
21
|
// eslint-disable-next-line max-statements
|
|
23
22
|
export const staticApp = async (
|
|
@@ -124,7 +123,7 @@ export const staticApp = async (
|
|
|
124
123
|
message: `message: server started, fetch application routes`,
|
|
125
124
|
});
|
|
126
125
|
|
|
127
|
-
let paths =
|
|
126
|
+
let paths = await appBundleInfo(serverConfigManager);
|
|
128
127
|
|
|
129
128
|
if (options.onlyPages) {
|
|
130
129
|
paths = intersection(paths, options.onlyPages);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { resolve, join } from 'path';
|
|
2
2
|
import PQueue from 'promise-queue';
|
|
3
3
|
import { outputFile } from 'fs-extra';
|
|
4
|
-
import { request } from './request';
|
|
5
4
|
import type { Context } from '../../models/context';
|
|
6
5
|
import type { ConfigManager } from '../../config/configManager';
|
|
7
6
|
import type { ApplicationConfigEntry } from '../../typings/configEntry/application';
|
|
7
|
+
import { appRequest } from '../../utils/dev-app/request';
|
|
8
8
|
|
|
9
9
|
const MAX_CONCURRENT = 10;
|
|
10
10
|
const DYNAMIC_PAGE_REGEX = /\/:.+\//g;
|
|
@@ -17,9 +17,8 @@ export const generateStatic = async (
|
|
|
17
17
|
const q = new PQueue(MAX_CONCURRENT);
|
|
18
18
|
const promises = [];
|
|
19
19
|
|
|
20
|
-
const {
|
|
20
|
+
const { rootDir, output } = configManager;
|
|
21
21
|
const staticPath = resolve(rootDir, output.static);
|
|
22
|
-
const serverPath = `http://${host}:${port}`;
|
|
23
22
|
|
|
24
23
|
for (const path of paths) {
|
|
25
24
|
promises.push(
|
|
@@ -41,7 +40,7 @@ export const generateStatic = async (
|
|
|
41
40
|
message: `path: ${path}, message: start fetching page`,
|
|
42
41
|
});
|
|
43
42
|
|
|
44
|
-
const html = await
|
|
43
|
+
const html = await appRequest(configManager, path);
|
|
45
44
|
|
|
46
45
|
await outputFile(join(staticPath, path, 'index.html'), html);
|
|
47
46
|
|
|
@@ -34,7 +34,7 @@ export const webpackClientConfig = ({
|
|
|
34
34
|
const config = new Config();
|
|
35
35
|
|
|
36
36
|
config.batch(common(configManager));
|
|
37
|
-
config.batch(commonDev());
|
|
37
|
+
config.batch(commonDev(configManager));
|
|
38
38
|
config.batch(
|
|
39
39
|
commonApplicationDev({
|
|
40
40
|
entry: path.resolve(configManager.rootDir, `${configManager.root}/index`),
|
|
@@ -24,7 +24,7 @@ export const webpackServerConfig = ({
|
|
|
24
24
|
const config = new Config();
|
|
25
25
|
|
|
26
26
|
config.batch(common(configManager));
|
|
27
|
-
config.batch(commonDev());
|
|
27
|
+
config.batch(commonDev(configManager));
|
|
28
28
|
config.batch(
|
|
29
29
|
commonApplicationDev({
|
|
30
30
|
entry: path.resolve(configManager.rootDir, `${configManager.root}/index`),
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type Config from 'webpack-chain';
|
|
2
|
+
import { DedupePlugin } from '@tinkoff/webpack-dedupe-plugin';
|
|
3
|
+
import type { DedupePluginOptions } from '@tinkoff/webpack-dedupe-plugin';
|
|
4
|
+
import type { CliConfigEntry, ConfigManager } from '../../../api';
|
|
5
|
+
|
|
6
|
+
export const dedupe =
|
|
7
|
+
(configManager: ConfigManager<CliConfigEntry>, options?: Partial<DedupePluginOptions>) =>
|
|
8
|
+
(config: Config) => {
|
|
9
|
+
config.plugin('dedupe-plugin').use(DedupePlugin, [
|
|
10
|
+
{
|
|
11
|
+
strategy: configManager.dedupe.strategy,
|
|
12
|
+
ignorePackages: configManager.dedupe.ignore?.map((ignore) => new RegExp(`^${ignore}`)),
|
|
13
|
+
showLogs: false,
|
|
14
|
+
...options,
|
|
15
|
+
} as DedupePluginOptions,
|
|
16
|
+
]);
|
|
17
|
+
};
|
|
@@ -3,9 +3,9 @@ import type Config from 'webpack-chain';
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { DuplicatesPlugin } from 'inspectpack/plugin';
|
|
5
5
|
import type { DedupePluginOptions } from '@tinkoff/webpack-dedupe-plugin';
|
|
6
|
-
import { DedupePlugin } from '@tinkoff/webpack-dedupe-plugin';
|
|
7
6
|
import type { ConfigManager } from '../../../../config/configManager';
|
|
8
7
|
import type { CliConfigEntry } from '../../../../typings/configEntry/cli';
|
|
8
|
+
import { dedupe } from '../../blocks/dedupe';
|
|
9
9
|
|
|
10
10
|
const onDedupeInfo = once<DedupePluginOptions['onDedupeInfo']>((logInfo) => {
|
|
11
11
|
if (logInfo.size > 0) {
|
|
@@ -27,14 +27,12 @@ export default (configManager: ConfigManager<CliConfigEntry>) => (config: Config
|
|
|
27
27
|
]);
|
|
28
28
|
|
|
29
29
|
if (configManager.dedupe.enabled) {
|
|
30
|
-
config.
|
|
31
|
-
{
|
|
32
|
-
strategy: configManager.dedupe.strategy,
|
|
33
|
-
ignorePackages: configManager.dedupe.ignore?.map((ignore) => new RegExp(`^${ignore}`)),
|
|
30
|
+
config.batch(
|
|
31
|
+
dedupe(configManager, {
|
|
34
32
|
showLogs: !configManager.modern,
|
|
35
33
|
onDedupeInfo,
|
|
36
|
-
}
|
|
37
|
-
|
|
34
|
+
})
|
|
35
|
+
);
|
|
38
36
|
} else {
|
|
39
37
|
config.plugin('duplicates-plugin').use(DuplicatesPlugin, [
|
|
40
38
|
{
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import type Config from 'webpack-chain';
|
|
2
2
|
import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
|
|
3
3
|
import { ignoreWarnings } from '../utils/warningsFilter';
|
|
4
|
+
import type { CliConfigEntry, ConfigManager } from '../../../api';
|
|
5
|
+
import { dedupe } from '../blocks/dedupe';
|
|
4
6
|
|
|
5
|
-
export default () => (config: Config) => {
|
|
7
|
+
export default (configManager: ConfigManager<CliConfigEntry>) => (config: Config) => {
|
|
6
8
|
config.plugin('case-sensitive-path').use(CaseSensitivePathsPlugin);
|
|
7
9
|
|
|
8
10
|
config.stats({
|
|
@@ -19,5 +21,9 @@ export default () => (config: Config) => {
|
|
|
19
21
|
|
|
20
22
|
config.module.set('unsafeCache', true);
|
|
21
23
|
|
|
24
|
+
if (configManager.dedupe.enabledDev) {
|
|
25
|
+
config.batch(dedupe(configManager));
|
|
26
|
+
}
|
|
27
|
+
|
|
22
28
|
return config;
|
|
23
29
|
};
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type Config from 'webpack-chain';
|
|
2
|
-
import type { DedupePluginOptions } from '@tinkoff/webpack-dedupe-plugin';
|
|
3
|
-
import { DedupePlugin } from '@tinkoff/webpack-dedupe-plugin';
|
|
4
2
|
import type { ConfigManager } from '../../../../config/configManager';
|
|
5
3
|
import type { CliConfigEntry } from '../../../../typings/configEntry/cli';
|
|
4
|
+
import { dedupe } from '../../blocks/dedupe';
|
|
6
5
|
|
|
7
6
|
export default (configManager: ConfigManager<CliConfigEntry>) => (config: Config) => {
|
|
8
7
|
config.mode('production');
|
|
@@ -15,12 +14,6 @@ export default (configManager: ConfigManager<CliConfigEntry>) => (config: Config
|
|
|
15
14
|
]);
|
|
16
15
|
|
|
17
16
|
if (configManager.dedupe.enabled) {
|
|
18
|
-
config.
|
|
19
|
-
{
|
|
20
|
-
strategy: configManager.dedupe.strategy,
|
|
21
|
-
showLogs: false,
|
|
22
|
-
ignorePackages: configManager.dedupe.ignore?.map((ignore) => new RegExp(`^${ignore}`)),
|
|
23
|
-
} as DedupePluginOptions,
|
|
24
|
-
]);
|
|
17
|
+
config.batch(dedupe(configManager));
|
|
25
18
|
}
|
|
26
19
|
};
|
|
@@ -28,6 +28,7 @@ it('should populate defaults for config', () => {
|
|
|
28
28
|
"cssMinimize": "css-minimizer",
|
|
29
29
|
"dedupe": {
|
|
30
30
|
"enabled": true,
|
|
31
|
+
"enabledDev": false,
|
|
31
32
|
"strategy": "equality",
|
|
32
33
|
},
|
|
33
34
|
"define": {
|
|
@@ -94,6 +95,7 @@ it('should populate defaults for config', () => {
|
|
|
94
95
|
"cssMinimize": "css-minimizer",
|
|
95
96
|
"dedupe": {
|
|
96
97
|
"enabled": true,
|
|
98
|
+
"enabledDev": false,
|
|
97
99
|
"strategy": "equality",
|
|
98
100
|
},
|
|
99
101
|
"define": {
|
|
@@ -225,6 +227,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
225
227
|
"cssMinimize": "css-minimizer",
|
|
226
228
|
"dedupe": {
|
|
227
229
|
"enabled": true,
|
|
230
|
+
"enabledDev": false,
|
|
228
231
|
"strategy": "semver",
|
|
229
232
|
},
|
|
230
233
|
"define": {
|
|
@@ -305,6 +308,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
305
308
|
"cssMinimize": "css-minimizer",
|
|
306
309
|
"dedupe": {
|
|
307
310
|
"enabled": true,
|
|
311
|
+
"enabledDev": false,
|
|
308
312
|
"strategy": "equality",
|
|
309
313
|
},
|
|
310
314
|
"define": {
|
|
@@ -818,6 +818,11 @@
|
|
|
818
818
|
"default": true,
|
|
819
819
|
"type": "boolean"
|
|
820
820
|
},
|
|
821
|
+
"enabledDev": {
|
|
822
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
823
|
+
"default": false,
|
|
824
|
+
"type": "boolean"
|
|
825
|
+
},
|
|
821
826
|
"strategy": {
|
|
822
827
|
"title": "Strategy for DedupePlugin",
|
|
823
828
|
"default": "equality",
|
|
@@ -1334,6 +1339,11 @@
|
|
|
1334
1339
|
"default": true,
|
|
1335
1340
|
"type": "boolean"
|
|
1336
1341
|
},
|
|
1342
|
+
"enabledDev": {
|
|
1343
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1344
|
+
"default": false,
|
|
1345
|
+
"type": "boolean"
|
|
1346
|
+
},
|
|
1337
1347
|
"strategy": {
|
|
1338
1348
|
"title": "Strategy for DedupePlugin",
|
|
1339
1349
|
"default": "equality",
|
|
@@ -1850,6 +1860,11 @@
|
|
|
1850
1860
|
"default": true,
|
|
1851
1861
|
"type": "boolean"
|
|
1852
1862
|
},
|
|
1863
|
+
"enabledDev": {
|
|
1864
|
+
"title": "Does DedupePlugin should be enabled in development mode\nWhy it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)",
|
|
1865
|
+
"default": false,
|
|
1866
|
+
"type": "boolean"
|
|
1867
|
+
},
|
|
1853
1868
|
"strategy": {
|
|
1854
1869
|
"title": "Strategy for DedupePlugin",
|
|
1855
1870
|
"default": "equality",
|
|
@@ -51,6 +51,7 @@ describe('JSON schema для tramvai.json', () => {
|
|
|
51
51
|
"cssMinimize": "css-minimizer",
|
|
52
52
|
"dedupe": {
|
|
53
53
|
"enabled": true,
|
|
54
|
+
"enabledDev": false,
|
|
54
55
|
"strategy": "equality",
|
|
55
56
|
},
|
|
56
57
|
"define": {
|
|
@@ -117,6 +118,7 @@ describe('JSON schema для tramvai.json', () => {
|
|
|
117
118
|
"cssMinimize": "css-minimizer",
|
|
118
119
|
"dedupe": {
|
|
119
120
|
"enabled": true,
|
|
121
|
+
"enabledDev": false,
|
|
120
122
|
"strategy": "equality",
|
|
121
123
|
},
|
|
122
124
|
"define": {
|
|
@@ -213,6 +213,12 @@ export interface CliConfigEntry extends ConfigEntry {
|
|
|
213
213
|
* @default true
|
|
214
214
|
*/
|
|
215
215
|
enabled: boolean;
|
|
216
|
+
/**
|
|
217
|
+
* @title Does DedupePlugin should be enabled in development mode
|
|
218
|
+
* Why it might be useful see [issue](https://github.com/Tinkoff/tramvai/issues/11)
|
|
219
|
+
* @default false
|
|
220
|
+
*/
|
|
221
|
+
enabledDev: boolean;
|
|
216
222
|
/**
|
|
217
223
|
* @title Strategy for DedupePlugin
|
|
218
224
|
* @default "equality"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import propOr from '@tinkoff/utils/object/propOr';
|
|
2
|
+
import createRequest from '@tinkoff/request-core';
|
|
3
|
+
import http from '@tinkoff/request-plugin-protocol-http';
|
|
4
|
+
import type { ConfigManager } from '../../config/configManager';
|
|
5
|
+
|
|
6
|
+
const request = createRequest([http()]);
|
|
7
|
+
|
|
8
|
+
export const appRequest = <T>(configManager: ConfigManager, path: string) => {
|
|
9
|
+
const { host, port } = configManager;
|
|
10
|
+
const serverPath = `http://${host}:${port}`;
|
|
11
|
+
|
|
12
|
+
return request<T>({ url: `${serverPath}${path}` });
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
interface BundleInfoResponse {
|
|
16
|
+
resultCode: string;
|
|
17
|
+
payload: string[];
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const appBundleInfo = async (configManager: ConfigManager) => {
|
|
21
|
+
const { name } = configManager;
|
|
22
|
+
|
|
23
|
+
const response = await appRequest<BundleInfoResponse>(configManager, `/${name}/papi/bundleInfo`);
|
|
24
|
+
|
|
25
|
+
return propOr('payload', [], response);
|
|
26
|
+
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const request: import("@tinkoff/request-core").MakeRequest;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.request = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const request_core_1 = tslib_1.__importDefault(require("@tinkoff/request-core"));
|
|
6
|
-
const request_plugin_protocol_http_1 = tslib_1.__importDefault(require("@tinkoff/request-plugin-protocol-http"));
|
|
7
|
-
exports.request = (0, request_core_1.default)([(0, request_plugin_protocol_http_1.default)()]);
|
|
8
|
-
//# sourceMappingURL=request.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/commands/static/request.ts"],"names":[],"mappings":";;;;AAAA,iFAAkD;AAClD,iHAAyD;AAE5C,QAAA,OAAO,GAAG,IAAA,sBAAa,EAAC,CAAC,IAAA,sCAAI,GAAE,CAAC,CAAC,CAAC"}
|