@tramvai/cli 2.133.0 → 2.133.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/builder/webpack/providers/build/client.js +4 -4
- package/lib/builder/webpack/providers/build/client.js.map +1 -1
- package/lib/builder/webpack/providers/build/clientModern.js +4 -4
- package/lib/builder/webpack/providers/build/clientModern.js.map +1 -1
- package/lib/builder/webpack/providers/build/server.js +4 -3
- package/lib/builder/webpack/providers/build/server.js.map +1 -1
- package/lib/builder/webpack/providers/start/shared.js +25 -1
- package/lib/builder/webpack/providers/start/shared.js.map +1 -1
- package/lib/builder/webpack/utils/compiler.d.ts +4 -0
- package/lib/builder/webpack/utils/compiler.js +25 -0
- package/lib/builder/webpack/utils/compiler.js.map +1 -0
- package/package.json +4 -2
- package/src/builder/webpack/providers/build/client.ts +5 -4
- package/src/builder/webpack/providers/build/clientModern.ts +5 -4
- package/src/builder/webpack/providers/build/server.ts +5 -4
- package/src/builder/webpack/providers/start/shared.ts +28 -1
- package/src/builder/webpack/utils/compiler.ts +24 -0
- package/src/commands/new/templates/app/monorepo/tramvai.json.hbs +4 -1
- package/src/commands/new/templates/app/multirepo/tramvai.json.hbs +4 -0
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildClientProviders = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const dippy_1 = require("@tinkoff/dippy");
|
|
6
|
-
const webpack_1 = tslib_1.__importDefault(require("webpack"));
|
|
7
5
|
const tokens_1 = require("../../../../di/tokens");
|
|
8
6
|
const toWebpackConfig_1 = require("../../../../library/webpack/utils/toWebpackConfig");
|
|
9
7
|
const tokens_2 = require("../../tokens");
|
|
10
8
|
const closeWebpack_1 = require("../../utils/closeWebpack");
|
|
11
9
|
const runWebpack_1 = require("../../utils/runWebpack");
|
|
10
|
+
const compiler_1 = require("../../utils/compiler");
|
|
12
11
|
exports.buildClientProviders = [
|
|
13
12
|
(0, dippy_1.provide)({
|
|
14
13
|
provide: tokens_2.CLIENT_CONFIG_MANAGER_TOKEN,
|
|
@@ -24,11 +23,12 @@ exports.buildClientProviders = [
|
|
|
24
23
|
}),
|
|
25
24
|
(0, dippy_1.provide)({
|
|
26
25
|
provide: tokens_2.WEBPACK_CLIENT_COMPILER_TOKEN,
|
|
27
|
-
useFactory: ({ webpackConfig }) => {
|
|
28
|
-
return (0,
|
|
26
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
27
|
+
return (0, compiler_1.createCompiler)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig), di);
|
|
29
28
|
},
|
|
30
29
|
deps: {
|
|
31
30
|
webpackConfig: tokens_2.WEBPACK_CLIENT_CONFIG_TOKEN,
|
|
31
|
+
di: dippy_1.DI_TOKEN,
|
|
32
32
|
},
|
|
33
33
|
}),
|
|
34
34
|
(0, dippy_1.provide)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/client.ts"],"names":[],"mappings":";;;AACA,0CAAmD;AACnD,kDAA6D;AAC7D,uFAAoF;AACpF,yCAMsB;AACtB,2DAAwD;AACxD,uDAAoD;AACpD,mDAAsD;AAEzC,QAAA,oBAAoB,GAAe;IAC9C,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,oCAA2B;QACpC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,aAAa,CAAC,YAAY,CAAC;gBAChC,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,sCAA6B;QACtC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE;YACpC,OAAO,IAAA,yBAAc,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,oCAA2B;YAC1C,EAAE,EAAE,gBAAQ;SACb;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,8BAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,uBAAU,EAAC,eAAe,CAAC,CAAC;YACrC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,sCAA6B;SAC/C;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,2BAAY,EAAC,eAAe,CAAC,CAAC;YACvC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,sCAA6B;SAC/C;KACF,CAAC;CACH,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildClientModernProviders = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
const dippy_1 = require("@tinkoff/dippy");
|
|
6
|
-
const webpack_1 = tslib_1.__importDefault(require("webpack"));
|
|
7
5
|
const tokens_1 = require("../../../../di/tokens");
|
|
8
6
|
const toWebpackConfig_1 = require("../../../../library/webpack/utils/toWebpackConfig");
|
|
9
7
|
const tokens_2 = require("../../tokens");
|
|
10
8
|
const closeWebpack_1 = require("../../utils/closeWebpack");
|
|
11
9
|
const runWebpack_1 = require("../../utils/runWebpack");
|
|
10
|
+
const compiler_1 = require("../../utils/compiler");
|
|
12
11
|
exports.buildClientModernProviders = [
|
|
13
12
|
(0, dippy_1.provide)({
|
|
14
13
|
provide: tokens_2.CLIENT_MODERN_CONFIG_MANAGER_TOKEN,
|
|
@@ -24,11 +23,12 @@ exports.buildClientModernProviders = [
|
|
|
24
23
|
}),
|
|
25
24
|
(0, dippy_1.provide)({
|
|
26
25
|
provide: tokens_2.WEBPACK_CLIENT_MODERN_COMPILER_TOKEN,
|
|
27
|
-
useFactory: ({ webpackConfig }) => {
|
|
28
|
-
return (0,
|
|
26
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
27
|
+
return (0, compiler_1.createCompiler)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig), di);
|
|
29
28
|
},
|
|
30
29
|
deps: {
|
|
31
30
|
webpackConfig: tokens_2.WEBPACK_CLIENT_MODERN_CONFIG_TOKEN,
|
|
31
|
+
di: dippy_1.DI_TOKEN,
|
|
32
32
|
},
|
|
33
33
|
}),
|
|
34
34
|
(0, dippy_1.provide)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientModern.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/clientModern.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clientModern.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/clientModern.ts"],"names":[],"mappings":";;;AACA,0CAAmD;AACnD,kDAA6D;AAC7D,uFAAoF;AACpF,yCAMsB;AACtB,2DAAwD;AACxD,uDAAoD;AACpD,mDAAsD;AAEzC,QAAA,0BAA0B,GAAe;IACpD,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2CAAkC;QAC3C,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,aAAa,CAAC,YAAY,CAAC;gBAChC,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,6BAAoB;SACpC;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,6CAAoC;QAC7C,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE;YACpC,OAAO,IAAA,yBAAc,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,2CAAkC;YACjD,EAAE,EAAE,gBAAQ;SACb;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,8BAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,uBAAU,EAAC,eAAe,CAAC,CAAC;YACrC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,6CAAoC;SACtD;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,2BAAY,EAAC,eAAe,CAAC,CAAC;YACvC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,6CAAoC;SACtD;KACF,CAAC;CACH,CAAC"}
|
|
@@ -4,19 +4,20 @@ exports.buildServerProviders = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const dippy_1 = require("@tinkoff/dippy");
|
|
6
6
|
const rimraf_1 = tslib_1.__importDefault(require("rimraf"));
|
|
7
|
-
const webpack_1 = tslib_1.__importDefault(require("webpack"));
|
|
8
7
|
const toWebpackConfig_1 = require("../../../../library/webpack/utils/toWebpackConfig");
|
|
9
8
|
const tokens_1 = require("../../tokens");
|
|
10
9
|
const closeWebpack_1 = require("../../utils/closeWebpack");
|
|
11
10
|
const runWebpack_1 = require("../../utils/runWebpack");
|
|
11
|
+
const compiler_1 = require("../../utils/compiler");
|
|
12
12
|
exports.buildServerProviders = [
|
|
13
13
|
(0, dippy_1.provide)({
|
|
14
14
|
provide: tokens_1.WEBPACK_SERVER_COMPILER_TOKEN,
|
|
15
|
-
useFactory: ({ webpackConfig }) => {
|
|
16
|
-
return (0,
|
|
15
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
16
|
+
return (0, compiler_1.createCompiler)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig), di);
|
|
17
17
|
},
|
|
18
18
|
deps: {
|
|
19
19
|
webpackConfig: tokens_1.WEBPACK_SERVER_CONFIG_TOKEN,
|
|
20
|
+
di: dippy_1.DI_TOKEN,
|
|
20
21
|
},
|
|
21
22
|
}),
|
|
22
23
|
(0, dippy_1.provide)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/server.ts"],"names":[],"mappings":";;;;AACA,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/build/server.ts"],"names":[],"mappings":";;;;AACA,0CAAmD;AACnD,4DAA4B;AAC5B,uFAAoF;AACpF,yCAOsB;AACtB,2DAAwD;AACxD,uDAAoD;AACpD,mDAAsD;AAEzC,QAAA,oBAAoB,GAAe;IAC9C,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,sCAA6B;QACtC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE;YACpC,OAAO,IAAA,yBAAc,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,oCAA2B;YAC1C,EAAE,EAAE,gBAAQ;SACb;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,2BAAkB;QAC3B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,SAAS,aAAa;gBAC3B,OAAO,gBAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,oCAA2B;SAC3C;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,8BAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,uBAAU,EAAC,eAAe,CAAC,CAAC;YACrC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,sCAA6B;SAC/C;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,4BAAmB;QAC5B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;YAClC,OAAO,SAAS,YAAY;gBAC1B,OAAO,IAAA,2BAAY,EAAC,eAAe,CAAC,CAAC;YACvC,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,EAAE;YACJ,eAAe,EAAE,sCAA6B;SAC/C;KACF,CAAC;CACH,CAAC"}
|
|
@@ -13,7 +13,31 @@ exports.startSharedProviders = [
|
|
|
13
13
|
provide: tokens_1.WEBPACK_COMPILER_TOKEN,
|
|
14
14
|
useFactory: ({ clientConfig, serverConfig }) => {
|
|
15
15
|
const configs = [clientConfig, serverConfig].filter(Boolean).map(toWebpackConfig_1.toWebpackConfig);
|
|
16
|
-
|
|
16
|
+
const multiCompiler = (0, webpack_1.default)(configs);
|
|
17
|
+
const { inputFileSystem } = multiCompiler.compilers[0];
|
|
18
|
+
// reuse input file system between compilers for faster builds, reference - https://github.com/vercel/next.js/pull/51879
|
|
19
|
+
multiCompiler.compilers.forEach((compiler) => {
|
|
20
|
+
// eslint-disable-next-line no-param-reassign
|
|
21
|
+
compiler.inputFileSystem = inputFileSystem;
|
|
22
|
+
// This is set for the initial compile. After that Watching class in webpack adds it.
|
|
23
|
+
// eslint-disable-next-line no-param-reassign
|
|
24
|
+
compiler.fsStartTime = Date.now();
|
|
25
|
+
// Ensure NodeEnvironmentPlugin doesn't purge the inputFileSystem. Purging is handled in `done` below.
|
|
26
|
+
// https://github.com/webpack/webpack/blob/main/lib/node/NodeEnvironmentPlugin.js#L51
|
|
27
|
+
compiler.hooks.beforeRun.intercept({
|
|
28
|
+
register(tapInfo) {
|
|
29
|
+
if (tapInfo.name === 'NodeEnvironmentPlugin') {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return tapInfo;
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
multiCompiler.hooks.done.tap('rebuildDone', () => {
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
38
|
+
inputFileSystem.purge();
|
|
39
|
+
});
|
|
40
|
+
return multiCompiler;
|
|
17
41
|
},
|
|
18
42
|
deps: {
|
|
19
43
|
clientConfig: { token: tokens_1.WEBPACK_CLIENT_CONFIG_TOKEN, optional: true },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/start/shared.ts"],"names":[],"mappings":";;;;AACA,0CAAmD;AACnD,8DAA8B;AAC9B,uFAAoF;AACpF,yCAOsB;AACtB,iDAAwD;AACxD,kDAAkF;AAErE,QAAA,oBAAoB,GAAe;IAC9C,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,+BAAsB;QAC/B,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,iCAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../../src/builder/webpack/providers/start/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCompiler = void 0;
|
|
4
|
+
const webpack_1 = require("webpack");
|
|
5
|
+
// reuse input file system between compilers for faster builds, reference - https://github.com/vercel/next.js/pull/51879
|
|
6
|
+
const createCompiler = (config, di) => {
|
|
7
|
+
const compiler = (0, webpack_1.webpack)(config);
|
|
8
|
+
const inputFileSystem = di.get({
|
|
9
|
+
token: 'webpack inputFileSystem',
|
|
10
|
+
optional: true,
|
|
11
|
+
});
|
|
12
|
+
if (inputFileSystem) {
|
|
13
|
+
// eslint-disable-next-line no-param-reassign
|
|
14
|
+
compiler.inputFileSystem = inputFileSystem;
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
di.register({
|
|
18
|
+
provide: 'webpack inputFileSystem',
|
|
19
|
+
useValue: compiler.inputFileSystem,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
return compiler;
|
|
23
|
+
};
|
|
24
|
+
exports.createCompiler = createCompiler;
|
|
25
|
+
//# sourceMappingURL=compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../../src/builder/webpack/utils/compiler.ts"],"names":[],"mappings":";;;AAEA,qCAAiD;AAEjD,wHAAwH;AACjH,MAAM,cAAc,GAAG,CAAC,MAAqB,EAAE,EAAmB,EAAY,EAAE;IACrF,MAAM,QAAQ,GAAG,IAAA,iBAAO,EAAC,MAAM,CAAC,CAAC;IACjC,MAAM,eAAe,GAAuC,EAAE,CAAC,GAAG,CAAC;QACjE,KAAK,EAAE,yBAAyB;QAChC,QAAQ,EAAE,IAAI;KACf,CAAQ,CAAC;IAEV,IAAI,eAAe,EAAE;QACnB,6CAA6C;QAC7C,QAAQ,CAAC,eAAe,GAAG,eAAe,CAAC;KAC5C;SAAM;QACL,EAAE,CAAC,QAAQ,CAAC;YACV,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,QAAQ,CAAC,eAAe;SACnC,CAAC,CAAC;KACJ;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAlBW,QAAA,cAAc,kBAkBzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "2.133.
|
|
3
|
+
"version": "2.133.2",
|
|
4
4
|
"description": "Cli инструмент для сборки и запуска приложений",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@tinkoff/utils": "^2.1.3",
|
|
72
72
|
"@tinkoff/webpack-dedupe-plugin": "1.0.5",
|
|
73
73
|
"@tramvai/build": "3.1.4",
|
|
74
|
-
"@tramvai/react": "2.133.
|
|
74
|
+
"@tramvai/react": "2.133.2",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.4.17",
|
|
76
76
|
"@tramvai/tools-migrate": "0.6.21",
|
|
77
77
|
"ajv": "^6.12.6",
|
|
@@ -143,6 +143,7 @@
|
|
|
143
143
|
"resolve": "^1.22.4",
|
|
144
144
|
"rimraf": "^3.0.2",
|
|
145
145
|
"semver": "^7.3.7",
|
|
146
|
+
"source-map": "^0.7.4",
|
|
146
147
|
"source-map-loader": "^4.0.0",
|
|
147
148
|
"spark-md5": "^3.0.2",
|
|
148
149
|
"stoppable": "^1.1.0",
|
|
@@ -158,6 +159,7 @@
|
|
|
158
159
|
"validate-npm-package-name": "^3.0.0",
|
|
159
160
|
"wait-on": "^5.3.0",
|
|
160
161
|
"webpack": "5.87.0",
|
|
162
|
+
"webpack-sources": "^3.2.3",
|
|
161
163
|
"webpack-bundle-analyzer": "^4.9.0",
|
|
162
164
|
"webpack-chain": "^6.5.1",
|
|
163
165
|
"webpack-dev-middleware": "^6.1.1",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Provider } from '@tinkoff/dippy';
|
|
2
|
-
import { provide } from '@tinkoff/dippy';
|
|
3
|
-
import webpack from 'webpack';
|
|
2
|
+
import { DI_TOKEN, provide } from '@tinkoff/dippy';
|
|
4
3
|
import { CONFIG_MANAGER_TOKEN } from '../../../../di/tokens';
|
|
5
4
|
import { toWebpackConfig } from '../../../../library/webpack/utils/toWebpackConfig';
|
|
6
5
|
import {
|
|
@@ -12,6 +11,7 @@ import {
|
|
|
12
11
|
} from '../../tokens';
|
|
13
12
|
import { closeWebpack } from '../../utils/closeWebpack';
|
|
14
13
|
import { runWebpack } from '../../utils/runWebpack';
|
|
14
|
+
import { createCompiler } from '../../utils/compiler';
|
|
15
15
|
|
|
16
16
|
export const buildClientProviders: Provider[] = [
|
|
17
17
|
provide({
|
|
@@ -28,11 +28,12 @@ export const buildClientProviders: Provider[] = [
|
|
|
28
28
|
}),
|
|
29
29
|
provide({
|
|
30
30
|
provide: WEBPACK_CLIENT_COMPILER_TOKEN,
|
|
31
|
-
useFactory: ({ webpackConfig }) => {
|
|
32
|
-
return
|
|
31
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
32
|
+
return createCompiler(toWebpackConfig(webpackConfig), di);
|
|
33
33
|
},
|
|
34
34
|
deps: {
|
|
35
35
|
webpackConfig: WEBPACK_CLIENT_CONFIG_TOKEN,
|
|
36
|
+
di: DI_TOKEN,
|
|
36
37
|
},
|
|
37
38
|
}),
|
|
38
39
|
provide({
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Provider } from '@tinkoff/dippy';
|
|
2
|
-
import { provide } from '@tinkoff/dippy';
|
|
3
|
-
import webpack from 'webpack';
|
|
2
|
+
import { DI_TOKEN, provide } from '@tinkoff/dippy';
|
|
4
3
|
import { CONFIG_MANAGER_TOKEN } from '../../../../di/tokens';
|
|
5
4
|
import { toWebpackConfig } from '../../../../library/webpack/utils/toWebpackConfig';
|
|
6
5
|
import {
|
|
@@ -12,6 +11,7 @@ import {
|
|
|
12
11
|
} from '../../tokens';
|
|
13
12
|
import { closeWebpack } from '../../utils/closeWebpack';
|
|
14
13
|
import { runWebpack } from '../../utils/runWebpack';
|
|
14
|
+
import { createCompiler } from '../../utils/compiler';
|
|
15
15
|
|
|
16
16
|
export const buildClientModernProviders: Provider[] = [
|
|
17
17
|
provide({
|
|
@@ -28,11 +28,12 @@ export const buildClientModernProviders: Provider[] = [
|
|
|
28
28
|
}),
|
|
29
29
|
provide({
|
|
30
30
|
provide: WEBPACK_CLIENT_MODERN_COMPILER_TOKEN,
|
|
31
|
-
useFactory: ({ webpackConfig }) => {
|
|
32
|
-
return
|
|
31
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
32
|
+
return createCompiler(toWebpackConfig(webpackConfig), di);
|
|
33
33
|
},
|
|
34
34
|
deps: {
|
|
35
35
|
webpackConfig: WEBPACK_CLIENT_MODERN_CONFIG_TOKEN,
|
|
36
|
+
di: DI_TOKEN,
|
|
36
37
|
},
|
|
37
38
|
}),
|
|
38
39
|
provide({
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Provider } from '@tinkoff/dippy';
|
|
2
|
-
import { provide } from '@tinkoff/dippy';
|
|
2
|
+
import { DI_TOKEN, provide } from '@tinkoff/dippy';
|
|
3
3
|
import rimraf from 'rimraf';
|
|
4
|
-
import webpack from 'webpack';
|
|
5
4
|
import { toWebpackConfig } from '../../../../library/webpack/utils/toWebpackConfig';
|
|
6
5
|
import {
|
|
7
6
|
CLOSE_HANDLER_TOKEN,
|
|
@@ -13,15 +12,17 @@ import {
|
|
|
13
12
|
} from '../../tokens';
|
|
14
13
|
import { closeWebpack } from '../../utils/closeWebpack';
|
|
15
14
|
import { runWebpack } from '../../utils/runWebpack';
|
|
15
|
+
import { createCompiler } from '../../utils/compiler';
|
|
16
16
|
|
|
17
17
|
export const buildServerProviders: Provider[] = [
|
|
18
18
|
provide({
|
|
19
19
|
provide: WEBPACK_SERVER_COMPILER_TOKEN,
|
|
20
|
-
useFactory: ({ webpackConfig }) => {
|
|
21
|
-
return
|
|
20
|
+
useFactory: ({ webpackConfig, di }) => {
|
|
21
|
+
return createCompiler(toWebpackConfig(webpackConfig), di);
|
|
22
22
|
},
|
|
23
23
|
deps: {
|
|
24
24
|
webpackConfig: WEBPACK_SERVER_CONFIG_TOKEN,
|
|
25
|
+
di: DI_TOKEN,
|
|
25
26
|
},
|
|
26
27
|
}),
|
|
27
28
|
provide({
|
|
@@ -18,8 +18,35 @@ export const startSharedProviders: Provider[] = [
|
|
|
18
18
|
provide: WEBPACK_COMPILER_TOKEN,
|
|
19
19
|
useFactory: ({ clientConfig, serverConfig }) => {
|
|
20
20
|
const configs = [clientConfig, serverConfig].filter(Boolean).map(toWebpackConfig);
|
|
21
|
+
const multiCompiler = webpack(configs);
|
|
22
|
+
const { inputFileSystem } = multiCompiler.compilers[0];
|
|
21
23
|
|
|
22
|
-
|
|
24
|
+
// reuse input file system between compilers for faster builds, reference - https://github.com/vercel/next.js/pull/51879
|
|
25
|
+
multiCompiler.compilers.forEach((compiler) => {
|
|
26
|
+
// eslint-disable-next-line no-param-reassign
|
|
27
|
+
compiler.inputFileSystem = inputFileSystem;
|
|
28
|
+
|
|
29
|
+
// This is set for the initial compile. After that Watching class in webpack adds it.
|
|
30
|
+
// eslint-disable-next-line no-param-reassign
|
|
31
|
+
compiler.fsStartTime = Date.now();
|
|
32
|
+
// Ensure NodeEnvironmentPlugin doesn't purge the inputFileSystem. Purging is handled in `done` below.
|
|
33
|
+
// https://github.com/webpack/webpack/blob/main/lib/node/NodeEnvironmentPlugin.js#L51
|
|
34
|
+
compiler.hooks.beforeRun.intercept({
|
|
35
|
+
register(tapInfo: any) {
|
|
36
|
+
if (tapInfo.name === 'NodeEnvironmentPlugin') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return tapInfo;
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
multiCompiler.hooks.done.tap('rebuildDone', () => {
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
46
|
+
inputFileSystem.purge!();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
return multiCompiler;
|
|
23
50
|
},
|
|
24
51
|
deps: {
|
|
25
52
|
clientConfig: { token: WEBPACK_CLIENT_CONFIG_TOKEN, optional: true },
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DI_TOKEN } from '@tinkoff/dippy';
|
|
2
|
+
import type { Configuration } from 'webpack';
|
|
3
|
+
import { webpack, type Compiler } from 'webpack';
|
|
4
|
+
|
|
5
|
+
// reuse input file system between compilers for faster builds, reference - https://github.com/vercel/next.js/pull/51879
|
|
6
|
+
export const createCompiler = (config: Configuration, di: typeof DI_TOKEN): Compiler => {
|
|
7
|
+
const compiler = webpack(config);
|
|
8
|
+
const inputFileSystem: Compiler['inputFileSystem'] | null = di.get({
|
|
9
|
+
token: 'webpack inputFileSystem',
|
|
10
|
+
optional: true,
|
|
11
|
+
}) as any;
|
|
12
|
+
|
|
13
|
+
if (inputFileSystem) {
|
|
14
|
+
// eslint-disable-next-line no-param-reassign
|
|
15
|
+
compiler.inputFileSystem = inputFileSystem;
|
|
16
|
+
} else {
|
|
17
|
+
di.register({
|
|
18
|
+
provide: 'webpack inputFileSystem',
|
|
19
|
+
useValue: compiler.inputFileSystem,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return compiler;
|
|
24
|
+
};
|