@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.
@@ -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, webpack_1.default)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig));
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":";;;;AACA,0CAAyC;AACzC,8DAA8B;AAC9B,kDAA6D;AAC7D,uFAAoF;AACpF,yCAMsB;AACtB,2DAAwD;AACxD,uDAAoD;AAEvC,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;YAChC,OAAO,IAAA,iBAAO,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,CAAC,CAAC;QACjD,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"}
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, webpack_1.default)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig));
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":";;;;AACA,0CAAyC;AACzC,8DAA8B;AAC9B,kDAA6D;AAC7D,uFAAoF;AACpF,yCAMsB;AACtB,2DAAwD;AACxD,uDAAoD;AAEvC,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;YAChC,OAAO,IAAA,iBAAO,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,2CAAkC;SAClD;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"}
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, webpack_1.default)((0, toWebpackConfig_1.toWebpackConfig)(webpackConfig));
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,0CAAyC;AACzC,4DAA4B;AAC5B,8DAA8B;AAC9B,uFAAoF;AACpF,yCAOsB;AACtB,2DAAwD;AACxD,uDAAoD;AAEvC,QAAA,oBAAoB,GAAe;IAC9C,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,sCAA6B;QACtC,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE;YAChC,OAAO,IAAA,iBAAO,EAAC,IAAA,iCAAe,EAAC,aAAa,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,EAAE;YACJ,aAAa,EAAE,oCAA2B;SAC3C;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"}
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
- return (0, webpack_1.default)(configs);
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;YAElF,OAAO,IAAA,iBAAO,EAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,EAAE;YACJ,YAAY,EAAE,EAAE,KAAK,EAAE,oCAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpE,YAAY,EAAE,EAAE,KAAK,EAAE,oCAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrE;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,sCAA6B;QACtC,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE;YACzC,IAAI,YAAY,EAAE;gBAChB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC9B;QACH,CAAC;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,+BAAsB;YAChC,YAAY,EAAE,EAAE,KAAK,EAAE,oCAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrE;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,sCAA6B;QACtC,UAAU,EAAE,CAAC,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,GAKb,EAAE,EAAE;YACH,IAAI,YAAY,EAAE;gBAChB,IAAI,YAAY,EAAE;oBAChB,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;iBAC9B;gBAED,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aAC9B;QACH,CAAC;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,+BAAsB;YAChC,YAAY,EAAE,EAAE,KAAK,EAAE,oCAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;YACpE,YAAY,EAAE,EAAE,KAAK,EAAE,oCAA2B,EAAE,QAAQ,EAAE,IAAI,EAAE;SACrE;KACF,CAAC;IACF,IAAA,eAAO,EAAC;QACN,OAAO,EAAE,8BAAqB;QAC9B,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,uBAAe;QAC3B,IAAI,EAAE;YACJ,EAAE,EAAE,gBAAQ;YACZ,QAAQ,EAAE,+BAAsB;YAChC,aAAa,EAAE,6BAAoB;YACnC,YAAY,EAAE,4BAAmB;SAClC;KACF,CAAC;CACH,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,4 @@
1
+ import type { DI_TOKEN } from '@tinkoff/dippy';
2
+ import type { Configuration } from 'webpack';
3
+ import { type Compiler } from 'webpack';
4
+ export declare const createCompiler: (config: Configuration, di: typeof DI_TOKEN) => Compiler;
@@ -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.0",
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.0",
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 webpack(toWebpackConfig(webpackConfig));
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 webpack(toWebpackConfig(webpackConfig));
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 webpack(toWebpackConfig(webpackConfig));
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
- return webpack(configs);
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
+ };
@@ -5,7 +5,10 @@
5
5
  "name": "{{configEntry.name}}",
6
6
  "root": "apps/{{configEntry.name}}",
7
7
  "type": "application",
8
- "sourceMap": true,
8
+ "sourceMap": {
9
+ "development": false,
10
+ "production": true
11
+ },
9
12
  "postcss": {
10
13
  "config": "apps/{{configEntry.name}}/postcss"
11
14
  },
@@ -6,6 +6,10 @@
6
6
  "root": "src",
7
7
  "type": "application",
8
8
  "sourceMap": true,
9
+ "sourceMap": {
10
+ "development": false,
11
+ "production": true
12
+ },
9
13
  "postcss": {
10
14
  "config": "src/postcss"
11
15
  },