@tramvai/cli 2.125.2 → 2.125.4
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/api/benchmark/index.js +0 -6
- package/lib/api/benchmark/index.js.map +1 -1
- package/lib/builder/webpack/devServer/setup.js +0 -4
- package/lib/builder/webpack/devServer/setup.js.map +1 -1
- package/lib/commands/index.js +0 -4
- package/lib/commands/index.js.map +1 -1
- package/lib/di/tokens/ui.d.ts +0 -5
- package/lib/di/tokens/ui.js +1 -2
- package/lib/di/tokens/ui.js.map +1 -1
- package/lib/library/babel/plugins/lazy-component/properties/chunkName.js +1 -1
- package/lib/library/babel/plugins/lazy-component/properties/chunkName.js.map +1 -1
- package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.d.ts +13 -0
- package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.js +57 -0
- package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.js.map +1 -0
- package/lib/library/webpack/application/client/prod/optimization/splitChunks.js +24 -18
- package/lib/library/webpack/application/client/prod/optimization/splitChunks.js.map +1 -1
- package/lib/library/webpack/common/main.js +2 -0
- package/lib/library/webpack/common/main.js.map +1 -1
- package/lib/library/webpack/loaders/pagesResolve.js +83 -68
- package/lib/library/webpack/loaders/pagesResolve.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +1 -1
- package/lib/typings/configEntry/application.d.ts +1 -1
- package/package.json +2 -3
- package/schema.json +1 -1
- package/src/api/benchmark/index.ts +1 -11
- package/src/builder/webpack/devServer/setup.ts +1 -6
- package/src/commands/index.ts +1 -5
- package/src/di/tokens/ui.ts +0 -1
- package/src/library/babel/plugins/lazy-component/properties/chunkName.ts +2 -2
- package/src/library/babel/plugins/lazy-component/properties/utils/webpackComments.ts +61 -0
- package/src/library/webpack/application/client/prod/optimization/splitChunks.ts +28 -20
- package/src/library/webpack/common/main.ts +2 -0
- package/src/library/webpack/loaders/pagesResolve.ts +26 -8
- package/src/models/config.spec.ts +2 -2
- package/src/schema/autogeneratedSchema.json +1 -1
- package/src/schema/tramvai.spec.ts +1 -1
- package/src/typings/configEntry/application.ts +1 -1
- package/lib/builder/webpack/devServer/notifier.d.ts +0 -4
- package/lib/builder/webpack/devServer/notifier.js +0 -25
- package/lib/builder/webpack/devServer/notifier.js.map +0 -1
- package/lib/library/babel/plugins/utils/webpackComments.d.ts +0 -6
- package/lib/library/babel/plugins/utils/webpackComments.js +0 -28
- package/lib/library/babel/plugins/utils/webpackComments.js.map +0 -1
- package/src/builder/webpack/devServer/notifier.ts +0 -38
- package/src/library/babel/plugins/utils/webpackComments.ts +0 -28
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const dippy_1 = require("@tinkoff/dippy");
|
|
4
3
|
const createCommand_1 = require("../../commands/createCommand");
|
|
5
4
|
const tokens_1 = require("../../di/tokens");
|
|
6
5
|
const build_1 = require("./build");
|
|
@@ -17,11 +16,6 @@ exports.default = (0, createCommand_1.createCommand)({
|
|
|
17
16
|
}
|
|
18
17
|
},
|
|
19
18
|
providers: [
|
|
20
|
-
(0, dippy_1.provide)({
|
|
21
|
-
provide: tokens_1.UI_OS_NOTIFY_TOKEN,
|
|
22
|
-
// disable notification in benchmark as it is annoying and not needed actually
|
|
23
|
-
useValue: false,
|
|
24
|
-
}),
|
|
25
19
|
{
|
|
26
20
|
provide: tokens_1.WITH_BUILD_STATS_TOKEN,
|
|
27
21
|
useValue: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/benchmark/index.ts"],"names":[],"mappings":";;AACA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/benchmark/index.ts"],"names":[],"mappings":";;AACA,gEAA6D;AAC7D,4CAAmF;AAEnF,mCAAyC;AAEzC,mCAAyC;AAkBzC,kBAAe,IAAA,6BAAa,EAAC;IAC3B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,CAAC,EAAE,EAAmB,EAAE;QAC/B,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,iCAAwB,CAAW,CAAC;QAE/D,QAAQ,OAAO,EAAE;YACf,KAAK,OAAO;gBACV,OAAO,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC;YAC5B,KAAK,OAAO;gBACV,OAAO,IAAA,sBAAc,EAAC,EAAE,CAAC,CAAC;SAC7B;IACH,CAAC;IACD,SAAS,EAAE;QACT;YACE,OAAO,EAAE,+BAAsB;YAC/B,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC,CAAC"}
|
|
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const express_1 = tslib_1.__importDefault(require("express"));
|
|
6
6
|
const webpack_dev_middleware_1 = tslib_1.__importDefault(require("webpack-dev-middleware"));
|
|
7
7
|
const webpack_hot_middleware_1 = tslib_1.__importDefault(require("webpack-hot-middleware"));
|
|
8
|
-
const notifier_1 = require("./notifier");
|
|
9
8
|
const tokens_1 = require("../../../di/tokens");
|
|
10
9
|
const tokens_2 = require("../tokens");
|
|
11
10
|
const close_1 = require("../../../utils/close");
|
|
@@ -61,9 +60,6 @@ const createDevServer = ({ di, compiler, configManager, staticServer, }) => {
|
|
|
61
60
|
}
|
|
62
61
|
const rootDir = di.get(tokens_1.CONFIG_ROOT_DIR_TOKEN);
|
|
63
62
|
app.use(express_1.default.static(rootDir));
|
|
64
|
-
if (di.get({ token: tokens_1.UI_OS_NOTIFY_TOKEN, optional: true })) {
|
|
65
|
-
(0, notifier_1.notifier)(compiler, configManager);
|
|
66
|
-
}
|
|
67
63
|
staticServer.on('request', app);
|
|
68
64
|
});
|
|
69
65
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAE9B,4FAA0D;AAC1D,4FAA0D;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAE9B,4FAA0D;AAC1D,4FAA0D;AAK1D,+CAA2D;AAC3D,sCAAwE;AACxE,gDAA6C;AAC7C,uDAA+E;AAE/E,MAAM,SAAS,GAAG,CAAC,aAA4B,EAAU,EAAE;IACzD,IAAI,IAAA,wBAAa,EAAC,aAAa,CAAC,EAAE;QAChC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,IAAA,qBAAU,EAAC,aAAa,CAAC,EAAE;QAC7B,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;KACjC;IAED,IAAI,IAAA,mBAAQ,EAAC,aAAa,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,WAAW,CAAC;KAC1C;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE;IAClE,IAAI,IAAA,wBAAa,EAAC,aAAa,CAAC,EAAE;QAChC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;KAC1C;IAED,IAAI,IAAA,qBAAU,EAAC,aAAa,CAAC,EAAE;QAC7B,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;KACjC;IAED,IAAI,IAAA,mBAAQ,EAAC,aAAa,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,WAAW,CAAC;KAC1C;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,EAC9B,EAAE,EACF,QAAQ,EACR,aAAa,EACb,YAAY,GAMb,EAAE,EAAE;IACH,OAAO,SAAe,SAAS;;YAC7B,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;YAEtB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzB,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;gBAEvC,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAA,gCAAoB,EAAC,QAAQ,CAAC,CAAC;YAErD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;YAEjD,EAAE,CAAC,QAAQ,CAAC;gBACV,OAAO,EAAE,+BAAsB;gBAC/B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ;aACzC,CAAC,CAAC;YAEH,EAAE,CAAC,QAAQ,CAAC;gBACV,OAAO,EAAE,4BAAmB;gBAC5B,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,GAAG,EAAE;oBACb,OAAO,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE;gBACpC,GAAG,CAAC,GAAG,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,IAAA,gCAAoB,EAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;aAC5F;YAED,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,8BAAqB,CAAC,CAAC;YAC9C,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAEjC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC;KAAA,CAAC;AACJ,CAAC,CAAC;AA/CW,QAAA,eAAe,mBA+C1B"}
|
package/lib/commands/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAAwC;AACxC,yCAA4E;AAE/D,QAAA,GAAG,GAAG,IAAA,qBAAS,EAAC;IAC3B,QAAQ,EAAE;QACR,KAAK,EAAE,GAAG,EAAE,mDAAQ,cAAc,GAAC;QACnC,KAAK,EAAE,GAAG,EAAE,mDAAQ,cAAc,GAAC;QACnC,SAAS,EAAE,GAAG,EAAE,mDAAQ,kBAAkB,GAAC;QAC3C,OAAO,EAAE,GAAG,EAAE,mDAAQ,gBAAgB,GAAC;QACvC,YAAY,EAAE,GAAG,EAAE,mDAAQ,mBAAmB,GAAC;KAChD;IACD,SAAS,EAAE;QACT;YACE,OAAO,EAAE,+BAAsB;YAC/B,QAAQ,EAAE,IAAI;SACf;QACD;YACE,OAAO,EAAE,6BAAoB;YAC7B,QAAQ,EAAE,IAAI;SACf;KACF;CACF,CAAC,CAAC"}
|
package/lib/di/tokens/ui.d.ts
CHANGED
package/lib/di/tokens/ui.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.UI_SHOW_PROGRESS_TOKEN = exports.UI_SHOW_BANNER_TOKEN = void 0;
|
|
4
4
|
const dippy_1 = require("@tinkoff/dippy");
|
|
5
5
|
exports.UI_SHOW_BANNER_TOKEN = (0, dippy_1.createToken)('ui showBanner');
|
|
6
6
|
exports.UI_SHOW_PROGRESS_TOKEN = (0, dippy_1.createToken)('ui showProgress');
|
|
7
|
-
exports.UI_OS_NOTIFY_TOKEN = (0, dippy_1.createToken)('ui osNotify');
|
|
8
7
|
//# sourceMappingURL=ui.js.map
|
package/lib/di/tokens/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/di/tokens/ui.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAEhC,QAAA,oBAAoB,GAAG,IAAA,mBAAW,EAAU,eAAe,CAAC,CAAC;AAC7D,QAAA,sBAAsB,GAAG,IAAA,mBAAW,EAAU,iBAAiB,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/di/tokens/ui.ts"],"names":[],"mappings":";;;AAAA,0CAA6C;AAEhC,QAAA,oBAAoB,GAAG,IAAA,mBAAW,EAAU,eAAe,CAAC,CAAC;AAC7D,QAAA,sBAAsB,GAAG,IAAA,mBAAW,EAAU,iBAAiB,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.chunkNameMethod = void 0;
|
|
4
|
-
const webpackComments_1 = require("
|
|
4
|
+
const webpackComments_1 = require("./utils/webpackComments");
|
|
5
5
|
const JS_PATH_REGEXP = /^[./]+|(\.js$)/g;
|
|
6
6
|
const MATCH_LEFT_HYPHENS_REPLACE_REGEX = /^-/g;
|
|
7
7
|
const WEBPACK_CHUNK_NAME_REGEXP = /webpackChunkName/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkName.js","sourceRoot":"","sources":["../../../../../../src/library/babel/plugins/lazy-component/properties/chunkName.ts"],"names":[],"mappings":";;;AAWA,
|
|
1
|
+
{"version":3,"file":"chunkName.js","sourceRoot":"","sources":["../../../../../../src/library/babel/plugins/lazy-component/properties/chunkName.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface WebpackComments {
|
|
2
|
+
webpackChunk?: string;
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Expect string with specific magic comments here - `webpackChunkName`.
|
|
7
|
+
* Objects can be here - https://webpack.js.org/api/module-methods/#magic-comments:~:text=This%20is%20wrapped%20in%20a%20JavaScript%20object%20and%20executed%20using%20node%20VM
|
|
8
|
+
* But vm.runInThisContext is slow, and we can cover only simple case here, while use this helper only in `chunkName.ts`
|
|
9
|
+
*
|
|
10
|
+
* @param str - example: ' webpackChunkName: "any_chunk_name" '
|
|
11
|
+
*/
|
|
12
|
+
export declare const parseWebpackComments: (str: string) => WebpackComments;
|
|
13
|
+
export declare const generateWebpackComments: (values: WebpackComments) => string;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateWebpackComments = exports.parseWebpackComments = void 0;
|
|
4
|
+
const quotesRegex = /["']/g;
|
|
5
|
+
/**
|
|
6
|
+
* Expect string with specific magic comments here - `webpackChunkName`.
|
|
7
|
+
* Objects can be here - https://webpack.js.org/api/module-methods/#magic-comments:~:text=This%20is%20wrapped%20in%20a%20JavaScript%20object%20and%20executed%20using%20node%20VM
|
|
8
|
+
* But vm.runInThisContext is slow, and we can cover only simple case here, while use this helper only in `chunkName.ts`
|
|
9
|
+
*
|
|
10
|
+
* @param str - example: ' webpackChunkName: "any_chunk_name" '
|
|
11
|
+
*/
|
|
12
|
+
const parseWebpackComments = (str) => {
|
|
13
|
+
try {
|
|
14
|
+
const rawValues = str.trim().split(',');
|
|
15
|
+
const values = {};
|
|
16
|
+
rawValues.forEach((comment) => {
|
|
17
|
+
const [key, rawValue] = comment.trim().split(':');
|
|
18
|
+
let value = rawValue.trim();
|
|
19
|
+
switch (value) {
|
|
20
|
+
case 'true': {
|
|
21
|
+
value = true;
|
|
22
|
+
break;
|
|
23
|
+
}
|
|
24
|
+
case 'false': {
|
|
25
|
+
value = false;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
case 'null': {
|
|
29
|
+
value = null;
|
|
30
|
+
break;
|
|
31
|
+
}
|
|
32
|
+
default: {
|
|
33
|
+
value = value.replace(quotesRegex, '');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
values[key] = value;
|
|
37
|
+
});
|
|
38
|
+
return values;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
throw Error(`compilation error while processing: /*${str}*/: ${e.message}`);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
exports.parseWebpackComments = parseWebpackComments;
|
|
45
|
+
const generateWebpackComments = (values) => {
|
|
46
|
+
try {
|
|
47
|
+
const str = Object.keys(values)
|
|
48
|
+
.map((key) => `${key}: ${JSON.stringify(values[key])}`)
|
|
49
|
+
.join(', ');
|
|
50
|
+
return ` ${str} `;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
throw Error(`compilation error while processing: /*${values}*/: ${e.message}`);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
exports.generateWebpackComments = generateWebpackComments;
|
|
57
|
+
//# sourceMappingURL=webpackComments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webpackComments.js","sourceRoot":"","sources":["../../../../../../../src/library/babel/plugins/lazy-component/properties/utils/webpackComments.ts"],"names":[],"mappings":";;;AAKA,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B;;;;;;GAMG;AACI,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAmB,EAAE;IACnE,IAAI;QACF,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,MAAM,GAAoB,EAAE,CAAC;QAEnC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC5B,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,KAAK,GAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEjC,QAAQ,KAAK,EAAE;gBACb,KAAK,MAAM,CAAC,CAAC;oBACX,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC,CAAC;oBACZ,KAAK,GAAG,KAAK,CAAC;oBACd,MAAM;iBACP;gBACD,KAAK,MAAM,CAAC,CAAC;oBACX,KAAK,GAAG,IAAI,CAAC;oBACb,MAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;iBACxC;aACF;YAED,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,CAAC,yCAAyC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AAlCW,QAAA,oBAAoB,wBAkC/B;AAEK,MAAM,uBAAuB,GAAG,CAAC,MAAuB,EAAE,EAAE;IACjE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,IAAI,GAAG,GAAG,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,CAAC,yCAAyC,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAChF;AACH,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
|
|
@@ -44,7 +44,7 @@ const resolveFrameworksPaths = (rootDir, frameworksList) => {
|
|
|
44
44
|
};
|
|
45
45
|
// eslint-disable-next-line max-statements
|
|
46
46
|
const splitChunksConfig = (configManager) => (config) => {
|
|
47
|
-
const { rootDir, splitChunks } = configManager;
|
|
47
|
+
const { rootDir, splitChunks, env } = configManager;
|
|
48
48
|
const topLevelFrameworkPaths = resolveFrameworksPaths(rootDir, ['react', 'react-dom']);
|
|
49
49
|
const reactCacheGroup = {
|
|
50
50
|
chunks: 'all',
|
|
@@ -65,7 +65,25 @@ const splitChunksConfig = (configManager) => (config) => {
|
|
|
65
65
|
};
|
|
66
66
|
let webpackSplitChunks = false;
|
|
67
67
|
switch (splitChunks.mode) {
|
|
68
|
-
case 'granularChunks':
|
|
68
|
+
case 'granularChunks': {
|
|
69
|
+
const shared = {
|
|
70
|
+
chunks: 'async',
|
|
71
|
+
minChunks: splitChunks.granularChunksSplitNumber,
|
|
72
|
+
minSize: splitChunks.granularChunksMinSize,
|
|
73
|
+
reuseExistingChunk: true,
|
|
74
|
+
priority: 30,
|
|
75
|
+
};
|
|
76
|
+
// for development, default name implementation is faster and readable
|
|
77
|
+
if (env === 'production') {
|
|
78
|
+
shared.name = (module, chunks = []) => {
|
|
79
|
+
return crypto_1.default
|
|
80
|
+
.createHash('sha1')
|
|
81
|
+
.update(chunks.reduce((acc, chunk) => {
|
|
82
|
+
return acc + chunk.name;
|
|
83
|
+
}, ''))
|
|
84
|
+
.digest('hex');
|
|
85
|
+
};
|
|
86
|
+
}
|
|
69
87
|
webpackSplitChunks = {
|
|
70
88
|
chunks: 'all',
|
|
71
89
|
maxInitialRequests: 10,
|
|
@@ -74,25 +92,12 @@ const splitChunksConfig = (configManager) => (config) => {
|
|
|
74
92
|
default: false,
|
|
75
93
|
defaultVendors: false,
|
|
76
94
|
reactCacheGroup,
|
|
77
|
-
shared
|
|
78
|
-
chunks: 'async',
|
|
79
|
-
minChunks: splitChunks.granularChunksSplitNumber,
|
|
80
|
-
minSize: splitChunks.granularChunksMinSize,
|
|
81
|
-
reuseExistingChunk: true,
|
|
82
|
-
priority: 30,
|
|
83
|
-
name(module, chunks) {
|
|
84
|
-
return crypto_1.default
|
|
85
|
-
.createHash('sha1')
|
|
86
|
-
.update(chunks.reduce((acc, chunk) => {
|
|
87
|
-
return acc + chunk.name;
|
|
88
|
-
}, ''))
|
|
89
|
-
.digest('hex');
|
|
90
|
-
},
|
|
91
|
-
},
|
|
95
|
+
shared,
|
|
92
96
|
},
|
|
93
97
|
};
|
|
94
98
|
break;
|
|
95
|
-
|
|
99
|
+
}
|
|
100
|
+
case 'commonChunk': {
|
|
96
101
|
webpackSplitChunks = {
|
|
97
102
|
cacheGroups: {
|
|
98
103
|
default: false,
|
|
@@ -106,6 +111,7 @@ const splitChunksConfig = (configManager) => (config) => {
|
|
|
106
111
|
},
|
|
107
112
|
};
|
|
108
113
|
break;
|
|
114
|
+
}
|
|
109
115
|
}
|
|
110
116
|
const { hotRefresh } = configManager;
|
|
111
117
|
if ((hotRefresh === null || hotRefresh === void 0 ? void 0 : hotRefresh.enabled) && webpackSplitChunks) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitChunks.js","sourceRoot":"","sources":["../../../../../../../src/library/webpack/application/client/prod/optimization/splitChunks.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AAGxB,4DAA4B;AAO5B,qJAAqJ;AACrJ,MAAM,sBAAsB,GAAG,CAAC,OAAe,EAAE,cAAwB,EAAE,EAAE;IAC3E,MAAM,sBAAsB,GAAa,EAAE,CAAC;IAC5C,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnD,iDAAiD;IACjD,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAE,YAAoB,EAAE,EAAE;QACnE,IAAI;YACF,IAAI,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;gBAC7C,OAAO;aACR;YAED,wBAAwB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAE1C,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,WAAW,eAAe,EAAE;gBACrE,KAAK,EAAE,CAAC,YAAY,CAAC;aACtB,CAAC,CAAC;YAEH,6FAA6F;YAC7F,0EAA0E;YAC1E,eAAe;YACf,0EAA0E;YAC1E,2EAA2E;YAC3E,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;YAEpD,yFAAyF;YACzF,IAAI,sBAAsB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBAAE,OAAO;YACvD,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;YAEjE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5C,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;aACjC;SACF;QAAC,OAAO,CAAC,EAAE;YACV,uDAAuD;SACxD;IACH,CAAC,CAAC;IAEF,KAAK,MAAM,WAAW,IAAI,cAAc,EAAE;QACxC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;KACtC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC,CAAC;AAEF,0CAA0C;AACnC,MAAM,iBAAiB,GAC5B,CAAC,aAAoD,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAC3E,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"splitChunks.js","sourceRoot":"","sources":["../../../../../../../src/library/webpack/application/client/prod/optimization/splitChunks.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,8 @@ exports.default = (configManager) => (config) => {
|
|
|
58
58
|
(0, safeRequire_1.safeRequireResolve)(path_1.default.resolve(configManager.rootDir, (0, css_1.getPostcssConfigPath)(configManager)), true),
|
|
59
59
|
]),
|
|
60
60
|
},
|
|
61
|
+
// https://github.com/vercel/next.js/commit/ff5338ce03a3240a97a5c84f5ad5c31c0f53a6ce
|
|
62
|
+
compression: false,
|
|
61
63
|
});
|
|
62
64
|
}
|
|
63
65
|
config.set('snapshot', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/library/webpack/common/main.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../src/library/webpack/common/main.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
5
|
-
const fs_readdir_recursive_1 = tslib_1.__importDefault(require("fs-readdir-recursive"));
|
|
6
5
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
6
|
const LAYOUT_FILENAME = '_layout.tsx';
|
|
8
7
|
const ERROR_BOUNDARY_FILENAME = '_error.tsx';
|
|
@@ -11,77 +10,92 @@ const removeExtension = (filename) => {
|
|
|
11
10
|
const parsed = path_1.default.parse(filename);
|
|
12
11
|
return path_1.default.join(parsed.dir, parsed.name);
|
|
13
12
|
};
|
|
13
|
+
const readdirAsync = (dir, prefix = '', filelist = [], filter = (file) => true) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
const files = yield fs_1.default.promises.readdir(dir).catch(() => []);
|
|
15
|
+
for (const file of files) {
|
|
16
|
+
const filepath = path_1.default.join(dir, file);
|
|
17
|
+
const stat = yield fs_1.default.promises.stat(filepath);
|
|
18
|
+
if (stat.isDirectory()) {
|
|
19
|
+
// eslint-disable-next-line no-param-reassign
|
|
20
|
+
filelist = yield readdirAsync(filepath, path_1.default.join(prefix, file), filelist, filter);
|
|
21
|
+
}
|
|
22
|
+
else if (filter(file)) {
|
|
23
|
+
filelist.push(path_1.default.join(prefix, file));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return filelist;
|
|
27
|
+
});
|
|
14
28
|
// eslint-disable-next-line func-style
|
|
15
29
|
const pagesResolve = function () {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const { fileSystemPages, rootDir, root, extensions } = this.getOptions();
|
|
32
|
+
const extensionsRegexp = new RegExp(`\\.(${extensions.map((ext) => ext.slice(1)).join('|')})$`);
|
|
33
|
+
const fsLayouts = [];
|
|
34
|
+
const fsErrorBoundaries = [];
|
|
35
|
+
const fsWildcards = [];
|
|
36
|
+
this.cacheable(false);
|
|
37
|
+
// eslint-disable-next-line max-statements
|
|
38
|
+
const filesToPages = ({ pagesRootDirectory, isRoutes = false, test, }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
const pagesDir = path_1.default.resolve(rootDir, root, pagesRootDirectory);
|
|
40
|
+
this.addContextDependency(pagesDir);
|
|
41
|
+
// skip service files
|
|
42
|
+
const pagesFiles = yield readdirAsync(pagesDir, '', [], (name) => name[0] !== '.' && name[0] !== '_' && !name.startsWith(WILDCARD_TOKEN));
|
|
43
|
+
const fsPages = [];
|
|
44
|
+
for (const file of pagesFiles) {
|
|
45
|
+
const extname = path_1.default.extname(file);
|
|
46
|
+
const normalizedFile = file.replace(/\\/g, '/');
|
|
47
|
+
if (test.test(normalizedFile)) {
|
|
48
|
+
const name = normalizedFile.replace(new RegExp(`\\${extname}$`), '');
|
|
49
|
+
const pageComponentName = `@/${pagesRootDirectory}/${name}`;
|
|
50
|
+
const pageComponentPath = path_1.default.resolve(pagesDir, name).replace(/\\/g, '\\\\');
|
|
51
|
+
const chunkname = pageComponentName.replace(/\//g, '_');
|
|
52
|
+
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage" */ '/tramvai-app/src/pages/MainPage'))
|
|
53
|
+
fsPages.push(`'${pageComponentName}': lazy(() => import(/* webpackChunkName: "${chunkname}" */ '${pageComponentPath}'))`);
|
|
54
|
+
if (isRoutes) {
|
|
55
|
+
const pageDirname = path_1.default.dirname(pageComponentPath);
|
|
56
|
+
const layoutPath = path_1.default.join(pageDirname, LAYOUT_FILENAME);
|
|
57
|
+
const errorBoundaryPath = path_1.default.join(pageDirname, ERROR_BOUNDARY_FILENAME);
|
|
58
|
+
const routeContent = (yield fs_1.default.promises.readdir(pageDirname, { withFileTypes: true }))
|
|
59
|
+
.filter((item) => item.isFile())
|
|
60
|
+
.map((item) => item.name);
|
|
61
|
+
const wildcardPath = routeContent.find((item) => item.includes(WILDCARD_TOKEN));
|
|
62
|
+
if (fs_1.default.existsSync(layoutPath)) {
|
|
63
|
+
const filename = removeExtension(layoutPath);
|
|
64
|
+
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__layout" */ '/tramvai-app/src/pages/MainPage_layout'))
|
|
65
|
+
fsLayouts.push(`'${pageComponentName}': lazy(() => import(/* webpackChunkName: "${chunkname}__layout" */ '${filename}'))`);
|
|
66
|
+
}
|
|
67
|
+
if (fs_1.default.existsSync(errorBoundaryPath)) {
|
|
68
|
+
const filename = removeExtension(errorBoundaryPath);
|
|
69
|
+
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__errorBoundary" */ '/tramvai-app/src/pages/MainPage_errorBoundary'))
|
|
70
|
+
fsErrorBoundaries.push(`'${pageComponentName}': lazy(() => import(/* webpackChunkName: "${chunkname}__errorBoundary" */ '${filename}'))`);
|
|
71
|
+
}
|
|
72
|
+
if (wildcardPath !== undefined) {
|
|
73
|
+
const componentName = `${pageComponentName}__wildcard`;
|
|
74
|
+
const filename = removeExtension(path_1.default.join(pageDirname, wildcardPath));
|
|
75
|
+
// @example '@/pages/MainPage': lazy(() => import(/* webpackChunkName: "@_pages_MainPage__wildcard" */ '/tramvai-app/src/pages/MainPage_wildcard'))
|
|
76
|
+
fsWildcards.push(`'${componentName}': lazy(() => import(/* webpackChunkName: "${chunkname}__wildcard" */ '${filename}'))`);
|
|
77
|
+
}
|
|
63
78
|
}
|
|
64
79
|
}
|
|
65
80
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const code = `import { lazy } from '@tramvai/react';
|
|
81
|
+
return fsPages;
|
|
82
|
+
});
|
|
83
|
+
const fsRoutes = fileSystemPages.routesDir
|
|
84
|
+
? yield filesToPages({
|
|
85
|
+
pagesRootDirectory: fileSystemPages.routesDir,
|
|
86
|
+
isRoutes: true,
|
|
87
|
+
test: new RegExp(`index${extensionsRegexp.source}`),
|
|
88
|
+
})
|
|
89
|
+
: [];
|
|
90
|
+
const fsPages = fileSystemPages.pagesDir
|
|
91
|
+
? yield filesToPages({
|
|
92
|
+
pagesRootDirectory: fileSystemPages.pagesDir,
|
|
93
|
+
test: fileSystemPages.componentsPattern
|
|
94
|
+
? new RegExp(fileSystemPages.componentsPattern)
|
|
95
|
+
: extensionsRegexp,
|
|
96
|
+
})
|
|
97
|
+
: [];
|
|
98
|
+
const code = `import { lazy } from '@tramvai/react';
|
|
85
99
|
|
|
86
100
|
export default {
|
|
87
101
|
routes: {
|
|
@@ -100,7 +114,8 @@ const pagesResolve = function () {
|
|
|
100
114
|
${fsWildcards.join(',\n')}
|
|
101
115
|
},
|
|
102
116
|
}`;
|
|
103
|
-
|
|
117
|
+
return code;
|
|
118
|
+
});
|
|
104
119
|
};
|
|
105
120
|
exports.default = pagesResolve;
|
|
106
121
|
//# sourceMappingURL=pagesResolve.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagesResolve.js","sourceRoot":"","sources":["../../../../src/library/webpack/loaders/pagesResolve.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"pagesResolve.js","sourceRoot":"","sources":["../../../../src/library/webpack/loaders/pagesResolve.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "2.125.
|
|
3
|
+
"version": "2.125.4",
|
|
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.125.
|
|
74
|
+
"@tramvai/react": "2.125.4",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.4.15",
|
|
76
76
|
"@tramvai/tools-migrate": "0.6.19",
|
|
77
77
|
"ajv": "^6.12.6",
|
|
@@ -158,7 +158,6 @@
|
|
|
158
158
|
"validate-npm-package-name": "^3.0.0",
|
|
159
159
|
"wait-on": "^5.3.0",
|
|
160
160
|
"webpack": "5.87.0",
|
|
161
|
-
"webpack-build-notifier": "^2.3.0",
|
|
162
161
|
"webpack-bundle-analyzer": "^4.9.0",
|
|
163
162
|
"webpack-chain": "^6.5.1",
|
|
164
163
|
"webpack-dev-middleware": "^6.1.1",
|
package/schema.json
CHANGED
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import type { Provider } from '@tinkoff/dippy';
|
|
2
|
-
import { provide } from '@tinkoff/dippy';
|
|
3
2
|
import { createCommand } from '../../commands/createCommand';
|
|
4
|
-
import {
|
|
5
|
-
COMMAND_PARAMETERS_TOKEN,
|
|
6
|
-
UI_OS_NOTIFY_TOKEN,
|
|
7
|
-
WITH_BUILD_STATS_TOKEN,
|
|
8
|
-
} from '../../di/tokens';
|
|
3
|
+
import { COMMAND_PARAMETERS_TOKEN, WITH_BUILD_STATS_TOKEN } from '../../di/tokens';
|
|
9
4
|
import type { BuildParams, BuildResult } from './build';
|
|
10
5
|
import { benchmarkBuild } from './build';
|
|
11
6
|
import type { StartParams, StartResult } from './start';
|
|
@@ -40,11 +35,6 @@ export default createCommand({
|
|
|
40
35
|
}
|
|
41
36
|
},
|
|
42
37
|
providers: [
|
|
43
|
-
provide({
|
|
44
|
-
provide: UI_OS_NOTIFY_TOKEN,
|
|
45
|
-
// disable notification in benchmark as it is annoying and not needed actually
|
|
46
|
-
useValue: false,
|
|
47
|
-
}),
|
|
48
38
|
{
|
|
49
39
|
provide: WITH_BUILD_STATS_TOKEN,
|
|
50
40
|
useValue: true,
|
|
@@ -3,11 +3,10 @@ import type { MultiCompiler } from 'webpack';
|
|
|
3
3
|
import webpackDevMiddleware from 'webpack-dev-middleware';
|
|
4
4
|
import webpackHotMiddleware from 'webpack-hot-middleware';
|
|
5
5
|
import type { Container } from '@tinkoff/dippy';
|
|
6
|
-
import { notifier } from './notifier';
|
|
7
6
|
import type { ConfigManager } from '../../../config/configManager';
|
|
8
7
|
import type { ApplicationConfigEntry } from '../../../typings/configEntry/application';
|
|
9
8
|
import type { STATIC_SERVER_TOKEN } from '../../../di/tokens';
|
|
10
|
-
import { CONFIG_ROOT_DIR_TOKEN
|
|
9
|
+
import { CONFIG_ROOT_DIR_TOKEN } from '../../../di/tokens';
|
|
11
10
|
import { WEBPACK_WATCHING_TOKEN, CLOSE_HANDLER_TOKEN } from '../tokens';
|
|
12
11
|
import { close } from '../../../utils/close';
|
|
13
12
|
import { isApplication, isChildApp, isModule } from '../../../config/validate';
|
|
@@ -89,10 +88,6 @@ export const createDevServer = ({
|
|
|
89
88
|
const rootDir = di.get(CONFIG_ROOT_DIR_TOKEN);
|
|
90
89
|
app.use(express.static(rootDir));
|
|
91
90
|
|
|
92
|
-
if (di.get({ token: UI_OS_NOTIFY_TOKEN, optional: true })) {
|
|
93
|
-
notifier(compiler, configManager);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
91
|
staticServer.on('request', app);
|
|
97
92
|
};
|
|
98
93
|
};
|
package/src/commands/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createApp } from './createApp';
|
|
2
|
-
import { UI_SHOW_BANNER_TOKEN,
|
|
2
|
+
import { UI_SHOW_BANNER_TOKEN, UI_SHOW_PROGRESS_TOKEN } from '../di/tokens';
|
|
3
3
|
|
|
4
4
|
export const app = createApp({
|
|
5
5
|
commands: {
|
|
@@ -18,9 +18,5 @@ export const app = createApp({
|
|
|
18
18
|
provide: UI_SHOW_BANNER_TOKEN,
|
|
19
19
|
useValue: true,
|
|
20
20
|
},
|
|
21
|
-
{
|
|
22
|
-
provide: UI_OS_NOTIFY_TOKEN,
|
|
23
|
-
useValue: true,
|
|
24
|
-
},
|
|
25
21
|
],
|
|
26
22
|
});
|
package/src/di/tokens/ui.ts
CHANGED
|
@@ -2,4 +2,3 @@ import { createToken } from '@tinkoff/dippy';
|
|
|
2
2
|
|
|
3
3
|
export const UI_SHOW_BANNER_TOKEN = createToken<boolean>('ui showBanner');
|
|
4
4
|
export const UI_SHOW_PROGRESS_TOKEN = createToken<boolean>('ui showProgress');
|
|
5
|
-
export const UI_OS_NOTIFY_TOKEN = createToken<boolean>('ui osNotify');
|
|
@@ -8,8 +8,8 @@ import type {
|
|
|
8
8
|
TemplateLiteral,
|
|
9
9
|
} from '@babel/types';
|
|
10
10
|
import type { ImportPath, PropertyFactory } from './types';
|
|
11
|
-
import type { WebpackComments } from '
|
|
12
|
-
import { generateWebpackComments, parseWebpackComments } from '
|
|
11
|
+
import type { WebpackComments } from './utils/webpackComments';
|
|
12
|
+
import { generateWebpackComments, parseWebpackComments } from './utils/webpackComments';
|
|
13
13
|
|
|
14
14
|
const JS_PATH_REGEXP = /^[./]+|(\.js$)/g;
|
|
15
15
|
const MATCH_LEFT_HYPHENS_REPLACE_REGEX = /^-/g;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface WebpackComments {
|
|
2
|
+
webpackChunk?: string;
|
|
3
|
+
[key: string]: string;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const quotesRegex = /["']/g;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Expect string with specific magic comments here - `webpackChunkName`.
|
|
10
|
+
* Objects can be here - https://webpack.js.org/api/module-methods/#magic-comments:~:text=This%20is%20wrapped%20in%20a%20JavaScript%20object%20and%20executed%20using%20node%20VM
|
|
11
|
+
* But vm.runInThisContext is slow, and we can cover only simple case here, while use this helper only in `chunkName.ts`
|
|
12
|
+
*
|
|
13
|
+
* @param str - example: ' webpackChunkName: "any_chunk_name" '
|
|
14
|
+
*/
|
|
15
|
+
export const parseWebpackComments = (str: string): WebpackComments => {
|
|
16
|
+
try {
|
|
17
|
+
const rawValues = str.trim().split(',');
|
|
18
|
+
const values: WebpackComments = {};
|
|
19
|
+
|
|
20
|
+
rawValues.forEach((comment) => {
|
|
21
|
+
const [key, rawValue] = comment.trim().split(':');
|
|
22
|
+
let value: any = rawValue.trim();
|
|
23
|
+
|
|
24
|
+
switch (value) {
|
|
25
|
+
case 'true': {
|
|
26
|
+
value = true;
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
case 'false': {
|
|
30
|
+
value = false;
|
|
31
|
+
break;
|
|
32
|
+
}
|
|
33
|
+
case 'null': {
|
|
34
|
+
value = null;
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
default: {
|
|
38
|
+
value = value.replace(quotesRegex, '');
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
values[key] = value;
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
return values;
|
|
46
|
+
} catch (e) {
|
|
47
|
+
throw Error(`compilation error while processing: /*${str}*/: ${e.message}`);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const generateWebpackComments = (values: WebpackComments) => {
|
|
52
|
+
try {
|
|
53
|
+
const str = Object.keys(values)
|
|
54
|
+
.map((key) => `${key}: ${JSON.stringify(values[key])}`)
|
|
55
|
+
.join(', ');
|
|
56
|
+
|
|
57
|
+
return ` ${str} `;
|
|
58
|
+
} catch (e) {
|
|
59
|
+
throw Error(`compilation error while processing: /*${values}*/: ${e.message}`);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
@@ -57,7 +57,7 @@ const resolveFrameworksPaths = (rootDir: string, frameworksList: string[]) => {
|
|
|
57
57
|
// eslint-disable-next-line max-statements
|
|
58
58
|
export const splitChunksConfig =
|
|
59
59
|
(configManager: ConfigManager<ApplicationConfigEntry>) => (config: Config) => {
|
|
60
|
-
const { rootDir, splitChunks } = configManager;
|
|
60
|
+
const { rootDir, splitChunks, env } = configManager;
|
|
61
61
|
|
|
62
62
|
const topLevelFrameworkPaths = resolveFrameworksPaths(rootDir, ['react', 'react-dom']);
|
|
63
63
|
|
|
@@ -85,7 +85,29 @@ export const splitChunksConfig =
|
|
|
85
85
|
let webpackSplitChunks: SplitChunksOptions = false;
|
|
86
86
|
|
|
87
87
|
switch (splitChunks.mode) {
|
|
88
|
-
case 'granularChunks':
|
|
88
|
+
case 'granularChunks': {
|
|
89
|
+
const shared: any = {
|
|
90
|
+
chunks: 'async',
|
|
91
|
+
minChunks: splitChunks.granularChunksSplitNumber,
|
|
92
|
+
minSize: splitChunks.granularChunksMinSize,
|
|
93
|
+
reuseExistingChunk: true,
|
|
94
|
+
priority: 30,
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// for development, default name implementation is faster and readable
|
|
98
|
+
if (env === 'production') {
|
|
99
|
+
shared.name = (module: any, chunks: webpack.Chunk[] = []) => {
|
|
100
|
+
return crypto
|
|
101
|
+
.createHash('sha1')
|
|
102
|
+
.update(
|
|
103
|
+
chunks.reduce((acc: string, chunk: webpack.Chunk) => {
|
|
104
|
+
return acc + chunk.name;
|
|
105
|
+
}, '')
|
|
106
|
+
)
|
|
107
|
+
.digest('hex');
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
89
111
|
webpackSplitChunks = {
|
|
90
112
|
chunks: 'all',
|
|
91
113
|
maxInitialRequests: 10,
|
|
@@ -94,27 +116,12 @@ export const splitChunksConfig =
|
|
|
94
116
|
default: false,
|
|
95
117
|
defaultVendors: false,
|
|
96
118
|
reactCacheGroup,
|
|
97
|
-
shared
|
|
98
|
-
chunks: 'async',
|
|
99
|
-
minChunks: splitChunks.granularChunksSplitNumber,
|
|
100
|
-
minSize: splitChunks.granularChunksMinSize,
|
|
101
|
-
reuseExistingChunk: true,
|
|
102
|
-
priority: 30,
|
|
103
|
-
name(module: any, chunks: webpack.Chunk[]) {
|
|
104
|
-
return crypto
|
|
105
|
-
.createHash('sha1')
|
|
106
|
-
.update(
|
|
107
|
-
chunks.reduce((acc: string, chunk: webpack.Chunk) => {
|
|
108
|
-
return acc + chunk.name;
|
|
109
|
-
}, '')
|
|
110
|
-
)
|
|
111
|
-
.digest('hex');
|
|
112
|
-
},
|
|
113
|
-
},
|
|
119
|
+
shared,
|
|
114
120
|
},
|
|
115
121
|
};
|
|
116
122
|
break;
|
|
117
|
-
|
|
123
|
+
}
|
|
124
|
+
case 'commonChunk': {
|
|
118
125
|
webpackSplitChunks = {
|
|
119
126
|
cacheGroups: {
|
|
120
127
|
default: false,
|
|
@@ -128,6 +135,7 @@ export const splitChunksConfig =
|
|
|
128
135
|
},
|
|
129
136
|
};
|
|
130
137
|
break;
|
|
138
|
+
}
|
|
131
139
|
}
|
|
132
140
|
|
|
133
141
|
const { hotRefresh } = configManager;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
|
-
import readDir from 'fs-readdir-recursive';
|
|
3
2
|
import fs from 'fs';
|
|
4
3
|
import type { LoaderDefinitionFunction } from 'webpack';
|
|
5
4
|
import type { ApplicationConfigEntry } from '../../../api';
|
|
@@ -21,8 +20,26 @@ const removeExtension = (filename: string): string => {
|
|
|
21
20
|
return path.join(parsed.dir, parsed.name);
|
|
22
21
|
};
|
|
23
22
|
|
|
23
|
+
const readdirAsync = async (dir, prefix = '', filelist = [], filter = (file: string) => true) => {
|
|
24
|
+
const files = await fs.promises.readdir(dir).catch(() => []);
|
|
25
|
+
|
|
26
|
+
for (const file of files) {
|
|
27
|
+
const filepath = path.join(dir, file);
|
|
28
|
+
const stat = await fs.promises.stat(filepath);
|
|
29
|
+
|
|
30
|
+
if (stat.isDirectory()) {
|
|
31
|
+
// eslint-disable-next-line no-param-reassign
|
|
32
|
+
filelist = await readdirAsync(filepath, path.join(prefix, file), filelist, filter);
|
|
33
|
+
} else if (filter(file)) {
|
|
34
|
+
filelist.push(path.join(prefix, file));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return filelist;
|
|
39
|
+
};
|
|
40
|
+
|
|
24
41
|
// eslint-disable-next-line func-style
|
|
25
|
-
const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = function () {
|
|
42
|
+
const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = async function () {
|
|
26
43
|
const { fileSystemPages, rootDir, root, extensions } = this.getOptions();
|
|
27
44
|
const extensionsRegexp = new RegExp(`\\.(${extensions.map((ext) => ext.slice(1)).join('|')})$`);
|
|
28
45
|
const fsLayouts: string[] = [];
|
|
@@ -32,7 +49,7 @@ const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = function ()
|
|
|
32
49
|
this.cacheable(false);
|
|
33
50
|
|
|
34
51
|
// eslint-disable-next-line max-statements
|
|
35
|
-
const filesToPages = ({
|
|
52
|
+
const filesToPages = async ({
|
|
36
53
|
pagesRootDirectory,
|
|
37
54
|
isRoutes = false,
|
|
38
55
|
test,
|
|
@@ -46,8 +63,10 @@ const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = function ()
|
|
|
46
63
|
this.addContextDependency(pagesDir);
|
|
47
64
|
|
|
48
65
|
// skip service files
|
|
49
|
-
const pagesFiles =
|
|
66
|
+
const pagesFiles = await readdirAsync(
|
|
50
67
|
pagesDir,
|
|
68
|
+
'',
|
|
69
|
+
[],
|
|
51
70
|
(name: string) => name[0] !== '.' && name[0] !== '_' && !name.startsWith(WILDCARD_TOKEN)
|
|
52
71
|
);
|
|
53
72
|
const fsPages = [];
|
|
@@ -73,8 +92,7 @@ const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = function ()
|
|
|
73
92
|
const layoutPath = path.join(pageDirname, LAYOUT_FILENAME);
|
|
74
93
|
const errorBoundaryPath = path.join(pageDirname, ERROR_BOUNDARY_FILENAME);
|
|
75
94
|
|
|
76
|
-
const routeContent = fs
|
|
77
|
-
.readdirSync(pageDirname, { withFileTypes: true })
|
|
95
|
+
const routeContent = (await fs.promises.readdir(pageDirname, { withFileTypes: true }))
|
|
78
96
|
.filter((item) => item.isFile())
|
|
79
97
|
.map((item) => item.name);
|
|
80
98
|
const wildcardPath = routeContent.find((item) => item.includes(WILDCARD_TOKEN));
|
|
@@ -113,14 +131,14 @@ const pagesResolve: LoaderDefinitionFunction<PagesResolveOptions> = function ()
|
|
|
113
131
|
};
|
|
114
132
|
|
|
115
133
|
const fsRoutes = fileSystemPages.routesDir
|
|
116
|
-
? filesToPages({
|
|
134
|
+
? await filesToPages({
|
|
117
135
|
pagesRootDirectory: fileSystemPages.routesDir,
|
|
118
136
|
isRoutes: true,
|
|
119
137
|
test: new RegExp(`index${extensionsRegexp.source}`),
|
|
120
138
|
})
|
|
121
139
|
: [];
|
|
122
140
|
const fsPages = fileSystemPages.pagesDir
|
|
123
|
-
? filesToPages({
|
|
141
|
+
? await filesToPages({
|
|
124
142
|
pagesRootDirectory: fileSystemPages.pagesDir,
|
|
125
143
|
test: fileSystemPages.componentsPattern
|
|
126
144
|
? new RegExp(fileSystemPages.componentsPattern)
|
|
@@ -68,7 +68,7 @@ it('should populate defaults for config', () => {
|
|
|
68
68
|
"enabled": false,
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
|
-
"serverRunner": "
|
|
71
|
+
"serverRunner": "thread",
|
|
72
72
|
"transpilation": {
|
|
73
73
|
"loader": "babel",
|
|
74
74
|
},
|
|
@@ -300,7 +300,7 @@ it('should populate defaults for overridable options', () => {
|
|
|
300
300
|
"enabled": false,
|
|
301
301
|
},
|
|
302
302
|
},
|
|
303
|
-
"serverRunner": "
|
|
303
|
+
"serverRunner": "thread",
|
|
304
304
|
"transpilation": {
|
|
305
305
|
"loader": {
|
|
306
306
|
"development": "swc",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type webpack from 'webpack';
|
|
2
|
-
import type { ConfigManager } from '../../../config/configManager';
|
|
3
|
-
import type { CliConfigEntry } from '../../../typings/configEntry/cli';
|
|
4
|
-
export declare const notifier: (compiler: webpack.MultiCompiler, configManager: ConfigManager<CliConfigEntry>) => void;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.notifier = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const webpack_build_notifier_1 = tslib_1.__importDefault(require("webpack-build-notifier"));
|
|
6
|
-
const getStatsByType = (stats, type) => {
|
|
7
|
-
return stats.stats.find((st) => {
|
|
8
|
-
return st.compilation.compiler.name === type;
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
const notifier = (compiler, configManager) => {
|
|
12
|
-
var _a, _b;
|
|
13
|
-
const clientNotifier = new webpack_build_notifier_1.default(Object.assign(Object.assign({ successSound: false, warningSound: false }, configManager.notifications), (_a = configManager.notifications) === null || _a === void 0 ? void 0 : _a.client));
|
|
14
|
-
const serverNotifier = new webpack_build_notifier_1.default(Object.assign(Object.assign({
|
|
15
|
-
// отлкючаем нотификацию для одного из нотификатора, чтобы не дублировать
|
|
16
|
-
suppressSuccess: 'always', successSound: false, warningSound: false }, configManager.notifications), (_b = configManager.notifications) === null || _b === void 0 ? void 0 : _b.server));
|
|
17
|
-
compiler.hooks.done.tap('webpack-build-notifier', (stats) => {
|
|
18
|
-
const clientStats = getStatsByType(stats, 'client');
|
|
19
|
-
const serverStats = getStatsByType(stats, 'server');
|
|
20
|
-
clientStats && clientNotifier.onCompilationDone(clientStats);
|
|
21
|
-
serverStats && serverNotifier.onCompilationDone(serverStats);
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
exports.notifier = notifier;
|
|
25
|
-
//# sourceMappingURL=notifier.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/notifier.ts"],"names":[],"mappings":";;;;AACA,4FAAgE;AAIhE,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAE,IAAY,EAAE,EAAE;IACjE,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QAC7B,OAAO,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEK,MAAM,QAAQ,GAAG,CACtB,QAA+B,EAC/B,aAA4C,EAC5C,EAAE;;IACF,MAAM,cAAc,GAAG,IAAI,gCAA0B,+BACnD,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,KAAK,IAChB,aAAa,CAAC,aAAa,GAC3B,MAAA,aAAa,CAAC,aAAa,0CAAE,MAAM,EACtC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,gCAA0B;QACnD,yEAAyE;QACzE,eAAe,EAAE,QAAQ,EACzB,YAAY,EAAE,KAAK,EACnB,YAAY,EAAE,KAAK,IAChB,aAAa,CAAC,aAAa,GAC3B,MAAA,aAAa,CAAC,aAAa,0CAAE,MAAM,EACtC,CAAC;IAEH,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,KAAK,EAAE,EAAE;QAC1D,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAEpD,WAAW,IAAK,cAAsB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACtE,WAAW,IAAK,cAAsB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA1BW,QAAA,QAAQ,YA0BnB"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateWebpackComments = exports.parseWebpackComments = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const vm_1 = tslib_1.__importDefault(require("vm"));
|
|
6
|
-
const parseWebpackComments = (str) => {
|
|
7
|
-
try {
|
|
8
|
-
const values = vm_1.default.runInNewContext(`(function(){return {${str}};})()`);
|
|
9
|
-
return values;
|
|
10
|
-
}
|
|
11
|
-
catch (e) {
|
|
12
|
-
throw Error(`compilation error while processing: /*${str}*/: ${e.message}`);
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
exports.parseWebpackComments = parseWebpackComments;
|
|
16
|
-
const generateWebpackComments = (values) => {
|
|
17
|
-
try {
|
|
18
|
-
const str = Object.keys(values)
|
|
19
|
-
.map((key) => `${key}: ${JSON.stringify(values[key])}`)
|
|
20
|
-
.join(', ');
|
|
21
|
-
return ` ${str} `;
|
|
22
|
-
}
|
|
23
|
-
catch (e) {
|
|
24
|
-
throw Error(`compilation error while processing: /*${values}*/: ${e.message}`);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
exports.generateWebpackComments = generateWebpackComments;
|
|
28
|
-
//# sourceMappingURL=webpackComments.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webpackComments.js","sourceRoot":"","sources":["../../../../../src/library/babel/plugins/utils/webpackComments.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AAOb,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAmB,EAAE;IACnE,IAAI;QACF,MAAM,MAAM,GAAG,YAAE,CAAC,eAAe,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;QAEtE,OAAO,MAAM,CAAC;KACf;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,CAAC,yCAAyC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B;AAEK,MAAM,uBAAuB,GAAG,CAAC,MAAuB,EAAE,EAAE;IACjE,IAAI;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;aACtD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,IAAI,GAAG,GAAG,CAAC;KACnB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,CAAC,yCAAyC,MAAM,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAChF;AACH,CAAC,CAAC;AAVW,QAAA,uBAAuB,2BAUlC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type webpack from 'webpack';
|
|
2
|
-
import WebpackBuildNotifierPlugin from 'webpack-build-notifier';
|
|
3
|
-
import type { ConfigManager } from '../../../config/configManager';
|
|
4
|
-
import type { CliConfigEntry } from '../../../typings/configEntry/cli';
|
|
5
|
-
|
|
6
|
-
const getStatsByType = (stats: webpack.MultiStats, type: string) => {
|
|
7
|
-
return stats.stats.find((st) => {
|
|
8
|
-
return st.compilation.compiler.name === type;
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
export const notifier = (
|
|
13
|
-
compiler: webpack.MultiCompiler,
|
|
14
|
-
configManager: ConfigManager<CliConfigEntry>
|
|
15
|
-
) => {
|
|
16
|
-
const clientNotifier = new WebpackBuildNotifierPlugin({
|
|
17
|
-
successSound: false,
|
|
18
|
-
warningSound: false,
|
|
19
|
-
...configManager.notifications,
|
|
20
|
-
...configManager.notifications?.client,
|
|
21
|
-
});
|
|
22
|
-
const serverNotifier = new WebpackBuildNotifierPlugin({
|
|
23
|
-
// отлкючаем нотификацию для одного из нотификатора, чтобы не дублировать
|
|
24
|
-
suppressSuccess: 'always',
|
|
25
|
-
successSound: false,
|
|
26
|
-
warningSound: false,
|
|
27
|
-
...configManager.notifications,
|
|
28
|
-
...configManager.notifications?.server,
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
compiler.hooks.done.tap('webpack-build-notifier', (stats) => {
|
|
32
|
-
const clientStats = getStatsByType(stats, 'client');
|
|
33
|
-
const serverStats = getStatsByType(stats, 'server');
|
|
34
|
-
|
|
35
|
-
clientStats && (clientNotifier as any).onCompilationDone(clientStats);
|
|
36
|
-
serverStats && (serverNotifier as any).onCompilationDone(serverStats);
|
|
37
|
-
});
|
|
38
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import vm from 'vm';
|
|
2
|
-
|
|
3
|
-
export interface WebpackComments {
|
|
4
|
-
webpackChunk?: string;
|
|
5
|
-
[key: string]: string;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export const parseWebpackComments = (str: string): WebpackComments => {
|
|
9
|
-
try {
|
|
10
|
-
const values = vm.runInNewContext(`(function(){return {${str}};})()`);
|
|
11
|
-
|
|
12
|
-
return values;
|
|
13
|
-
} catch (e) {
|
|
14
|
-
throw Error(`compilation error while processing: /*${str}*/: ${e.message}`);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const generateWebpackComments = (values: WebpackComments) => {
|
|
19
|
-
try {
|
|
20
|
-
const str = Object.keys(values)
|
|
21
|
-
.map((key) => `${key}: ${JSON.stringify(values[key])}`)
|
|
22
|
-
.join(', ');
|
|
23
|
-
|
|
24
|
-
return ` ${str} `;
|
|
25
|
-
} catch (e) {
|
|
26
|
-
throw Error(`compilation error while processing: /*${values}*/: ${e.message}`);
|
|
27
|
-
}
|
|
28
|
-
};
|