arui-scripts 0.0.0-next-multiple-node-20260208170835 → 0.0.0-next-20260709074302
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/.turbo/turbo-test.log +12 -7
- package/CHANGELOG.md +213 -3
- package/README.md +14 -2
- package/build/bin/index.d.ts +1 -2
- package/build/bin/index.js +2 -0
- package/build/commands/build/client.js +2 -2
- package/build/commands/build/server.js +2 -2
- package/build/commands/bundle-analyze/index.js +14 -0
- package/build/commands/changelog/index.js +17 -7
- package/build/commands/ensure-yarn/index.d.ts +1 -0
- package/build/commands/ensure-yarn/index.js +1 -0
- package/build/commands/test/get-config.js +4 -25
- package/build/commands/test/index.js +17 -7
- package/build/commands/test-vitest/index.d.ts +1 -0
- package/build/commands/test-vitest/index.js +15 -0
- package/build/commands/util/get-local-ident.d.ts +6 -0
- package/build/commands/util/get-local-ident.js +29 -0
- package/build/commands/util/print-build-error.d.ts +1 -0
- package/build/commands/util/print-build-error.js +32 -0
- package/build/commands/util/run-client-dev-server.js +5 -2
- package/build/commands/util/run-vitest.d.ts +7 -0
- package/build/commands/util/run-vitest.js +41 -0
- package/build/configs/app-configs/get-defaults.js +7 -4
- package/build/configs/app-configs/types.d.ts +4 -2
- package/build/configs/dev-server.js +31 -28
- package/build/configs/jest/babel-transform.d.ts +1 -1
- package/build/configs/modules-css-manifest.d.ts +11 -0
- package/build/configs/modules-css-manifest.js +14 -0
- package/build/configs/modules.d.ts +1 -0
- package/build/configs/modules.js +43 -10
- package/build/configs/postcss.config.d.ts +3 -1
- package/build/configs/postcss.d.ts +6 -1
- package/build/configs/postcss.js +17 -2
- package/build/configs/process-assets-plugin-output.js +10 -4
- package/build/configs/server-externals-exemptions.js +1 -1
- package/build/configs/swc.js +1 -1
- package/build/configs/util/apply-overrides.d.ts +3 -3
- package/build/configs/util/compress-with-dcb.d.ts +1 -1
- package/build/configs/util/dcb-compression-plugin.d.ts +2 -3
- package/build/configs/util/find-plugin.d.ts +5 -12
- package/build/configs/util/find-plugin.js +7 -8
- package/build/configs/util/node-assets-ignore.d.ts +1 -0
- package/build/configs/util/node-assets-ignore.js +1 -0
- package/build/configs/util/register-ts-node.d.ts +1 -0
- package/build/configs/util/register-ts-node.js +4 -3
- package/build/configs/vitest/config.d.ts +2 -0
- package/build/configs/vitest/config.js +5 -0
- package/build/configs/vitest/settings.d.ts +30 -0
- package/build/configs/vitest/settings.js +77 -0
- package/build/configs/webpack.client.d.ts +1 -1
- package/build/configs/webpack.client.dev.d.ts +1 -1
- package/build/configs/webpack.client.dev.js +1 -1
- package/build/configs/webpack.client.js +26 -16
- package/build/configs/webpack.client.prod.d.ts +1 -1
- package/build/configs/webpack.client.prod.js +1 -1
- package/build/configs/webpack.server.dev.d.ts +1 -1
- package/build/configs/webpack.server.dev.js +1 -1
- package/build/configs/webpack.server.js +4 -9
- package/build/configs/webpack.server.prod.d.ts +1 -1
- package/build/configs/webpack.server.prod.js +1 -1
- package/build/index.d.ts +2 -1
- package/build/index.js +3 -1
- package/build/plugins/attribute-module-css.d.ts +35 -0
- package/build/plugins/attribute-module-css.js +109 -0
- package/docs/caveats.md +2 -2
- package/docs/commands.md +35 -1
- package/docs/modules.md +191 -0
- package/docs/presets.md +2 -2
- package/docs/settings.md +8 -1
- package/package.json +62 -24
- package/tsconfig-local.json +6 -2
- package/tsconfig-local.tsbuildinfo +1 -0
- package/tsconfig.json +1 -41
- package/build/tsconfig-local.tsbuildinfo +0 -1
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
ts-jest[versions] (WARN) Version 6.0.2 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=4.3.0 <6.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
|
|
2
|
+
ts-jest[versions] (WARN) Version 6.0.2 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=4.3.0 <6.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
|
|
3
|
+
ts-jest[versions] (WARN) Version 6.0.2 of typescript installed has not been tested with ts-jest. If you're experiencing issues, consider using a supported version (>=4.3.0 <6.0.0-0). Please do not report issues in ts-jest if you are using unsupported versions.
|
|
4
|
+
PASS src/plugins/postcss-global-variables/utils/__tests__/add-global-variable.tests.ts (27.791 s)
|
|
5
|
+
PASS src/configs/app-configs/__tests__/update-with-presets.tests.ts
|
|
2
6
|
PASS src/configs/util/__tests__/create-watch-ignore-regex.tests.ts
|
|
3
7
|
PASS src/configs/util/__tests__/apply-overrides.tests.ts
|
|
4
8
|
PASS src/configs/app-configs/__tests__/update-with-env.tests.ts
|
|
5
|
-
PASS src/
|
|
9
|
+
PASS src/plugins/__tests__/attribute-module-css.tests.ts (35.59 s)
|
|
6
10
|
PASS src/configs/app-configs/__tests__/update-with-package.tests.ts
|
|
7
11
|
PASS src/configs/util/__tests__/compress-with-dcb.test.ts
|
|
8
12
|
PASS src/configs/util/__tests__/get-polyfills.tests.ts
|
|
9
|
-
PASS src/plugins/postcss-global-variables/utils/__tests__/get-media-query-name.tests.ts
|
|
10
13
|
PASS src/plugins/postcss-global-variables/utils/__tests__/parse-variables.tests.ts
|
|
14
|
+
PASS src/plugins/postcss-global-variables/utils/__tests__/get-media-query-name.tests.ts
|
|
11
15
|
PASS src/configs/app-configs/__tests__/validate-settings-keys.tests.ts
|
|
12
|
-
PASS src/configs/
|
|
16
|
+
PASS src/configs/__tests__/webpack-client-modules.tests.ts (9.979 s)
|
|
17
|
+
PASS src/configs/util/__tests__/find-plugin.tests.ts (39.212 s)
|
|
13
18
|
|
|
14
|
-
Test Suites:
|
|
15
|
-
Tests:
|
|
19
|
+
Test Suites: 14 passed, 14 total
|
|
20
|
+
Tests: 37 passed, 37 total
|
|
16
21
|
Snapshots: 0 total
|
|
17
|
-
Time:
|
|
22
|
+
Time: 40.445 s
|
|
18
23
|
Ran all test suites.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,220 @@
|
|
|
1
|
-
#
|
|
1
|
+
# arui-scripts
|
|
2
2
|
|
|
3
|
-
## 0.0.0-next-
|
|
3
|
+
## 0.0.0-next-20260709074302
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#532](https://github.com/core-ds/arui-scripts/pull/532) [`331ff349`](https://github.com/core-ds/arui-scripts/commit/331ff3490d12dc334486a445479d9c47a9532c5b) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - CSS module-federation модулей теперь попадает в манифест сборки на уровне каждого модуля.
|
|
8
|
+
Раньше стили модуля не были привязаны к его записи в манифесте, из-за чего хост-сервер не мог
|
|
9
|
+
отдать их при серверном рендере, и модуль отрисовывался без стилей до загрузки на клиенте.
|
|
10
|
+
Теперь стили доступны в записи модуля и могут быть встроены при SSR. Изменение аддитивно: для
|
|
11
|
+
сборок без модулей и для не-SSR потребления манифест остаётся прежним.
|
|
12
|
+
|
|
13
|
+
Подробнее: [SSR-спецификация модулей, раздел 10](../docs/specs/ssr-spec.md#10-addendum-css-delivery-for-module-federation-modules)..
|
|
14
|
+
|
|
15
|
+
## 23.0.2
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#512](https://github.com/core-ds/arui-scripts/pull/512) [`e2b0ee1`](https://github.com/core-ds/arui-scripts/commit/e2b0ee1d3376e359a7e466de7a5d3c37ed672684) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - Исправлен запуск команды `bundle-analyze`. Теперь явно включаются необходимые поля stats для `webpack-bundle-analyzer`, которые больше не попадают в `stats.toJson()` по умолчанию
|
|
20
|
+
|
|
21
|
+
## 23.0.1
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- [#513](https://github.com/core-ds/arui-scripts/pull/513) [`fb3dcef`](https://github.com/core-ds/arui-scripts/commit/fb3dcef62e38e71da665175d2aef42fa00b95040) Thanks [@evK608](https://github.com/evK608)! - Исправление конфликта runtime-чанков между основной сборкой и отдельной WMF-сборкой при использовании modules.options.useSeparateBuild
|
|
26
|
+
|
|
27
|
+
## 23.0.0
|
|
28
|
+
|
|
29
|
+
### Major Changes
|
|
30
|
+
|
|
31
|
+
- [#507](https://github.com/core-ds/arui-scripts/pull/507) [`ed3c42b`](https://github.com/core-ds/arui-scripts/commit/ed3c42b75644b626fbfeb40fb6944160a33f84b1) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - SWC больше не использует loose режим по умолчанию. Это меняет то, как именно собирается код.
|
|
32
|
+
|
|
33
|
+
### Что это означает:
|
|
34
|
+
|
|
35
|
+
Если вы не делали вещей, противоречащих спеке - все должно остаться как прежде. Если же нет - вам придется модифицировать ваш код.
|
|
36
|
+
Не-loose режим генерирует немного больше кода: 3% в несжатом виде, 0.3% для gzip/brotli.
|
|
37
|
+
|
|
38
|
+
Если ошибки проявляются в коде, который вы не можете контролировать:
|
|
39
|
+
|
|
40
|
+
1. Сообщите об этом в чате arui-scripts
|
|
41
|
+
2. Используйте оверрайды, чтобы включить loose режим.
|
|
42
|
+
|
|
43
|
+
### Краткое описание того, что меняется в не-loose режиме:
|
|
44
|
+
|
|
45
|
+
- Приватные поля классов (`#private`) теперь будут создаваться через `WeakMap` и их действительно невозможно будет прочитать снаружи.
|
|
46
|
+
- Публичные поля классов (`class Foo { x = 1 }`) теперь создаются через `Object.defineProperty`, а не простым присваиванием `this.x = 1`. Это корректно по спецификации, но медленнее.
|
|
47
|
+
- Компилятор больше не предполагает, что суперкласс статичен — добавляются рантаймовые проверки на случай, если цепочка прототипов меняется через `setPrototypeOf`.
|
|
48
|
+
- Операторы `?.` и `??` теперь корректно обрабатывают `document.all`: вместо `== null` используется строгая проверка `=== null || === undefined`.
|
|
49
|
+
- Геттеры свойств могут иметь побочные эффекты, поэтому компилятор кеширует промежуточный результат во временную переменную, чтобы не вызывать геттер дважды.
|
|
50
|
+
- При rest-деструктуризации символьные ключи тоже копируются в `rest`. Используется полный хелпер `objectWithoutProperties`.
|
|
51
|
+
- Object spread (`{ ...obj }`) теперь клонирует дескрипторы свойств через `Object.defineProperty` вместо `Object.assign`. Медленнее, но точнее воспроизводит оригинальные дескрипторы.
|
|
52
|
+
- Компилятор явно задаёт `.name` у функциональных выражений через `Object.defineProperty`, как того требует спецификация.
|
|
53
|
+
- Компилятор корректно имитирует `.length` функции с учётом параметров по умолчанию — через обращение к `arguments`.
|
|
54
|
+
- Шаблонные строки используют `.concat()` вместо `+`, что корректно учитывает возможное переопределение `Symbol.toPrimitive` на объекте.
|
|
55
|
+
- Объект тегового шаблона замораживается через `Object.freeze`, как требует спецификация.
|
|
56
|
+
- В каждый конструктор класса добавляется проверка `_classCallCheck`, которая выбрасывает ошибку при вызове класса без `new`.
|
|
57
|
+
- Методы добавляются на прототип через `Object.defineProperty` с `enumerable: false`, что соответствует спецификации.
|
|
58
|
+
- `super()` компилируется через `Reflect.construct` вместо `.call()`, что позволяет корректно наследоваться от нативных классов (`Array`, `Error` и т.п.).
|
|
59
|
+
- Итерируемые объекты обходятся через полный итераторный протокол (`Symbol.iterator`), а не прямой индексный доступ. Корректно работает с `Set`, `Map`, генераторами и любыми кастомными итерируемыми.
|
|
60
|
+
|
|
61
|
+
Подробности можно прочитать в документации [swc](https://swc.rs/docs/configuration/compilation#jscloose) и [babel](https://babeljs.io/docs/assumptions)
|
|
62
|
+
|
|
63
|
+
## 22.4.0
|
|
64
|
+
|
|
65
|
+
### Minor Changes
|
|
66
|
+
|
|
67
|
+
- [#500](https://github.com/core-ds/arui-scripts/pull/500) [`c8662df`](https://github.com/core-ds/arui-scripts/commit/c8662df4ad59ee602069679ad80b8445513263ac) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - добавлен экспорт типа CompatModuleConfig
|
|
68
|
+
|
|
69
|
+
## 22.3.0
|
|
70
|
+
|
|
71
|
+
### Minor Changes
|
|
72
|
+
|
|
73
|
+
- [#498](https://github.com/core-ds/arui-scripts/pull/498) [`807e9a8`](https://github.com/core-ds/arui-scripts/commit/807e9a85d8753611c7cfeb7c38fdede28a970901) Thanks [@qrik116](https://github.com/qrik116)! - Добавлена настройка `nodeExternals` для настройки **webpack-node-externals** в конфигурации сервера
|
|
74
|
+
|
|
75
|
+
## 22.2.0
|
|
76
|
+
|
|
77
|
+
### Minor Changes
|
|
78
|
+
|
|
79
|
+
- [#493](https://github.com/core-ds/arui-scripts/pull/493) [`800b5db`](https://github.com/core-ds/arui-scripts/commit/800b5db0b5e2387aed2092ef54bbf01b58f11c50) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - добавлен рееэкспорт patchMainWebpackConfigForModules для публичного api, для исправления ошибки ERR_PACKAGE_PATH_NOT_EXPORTED в проектах. если нужна функция patchMainWebpackConfigForModules, то используйте `import { patchMainWebpackConfigForModules } from 'arui-scripts'`
|
|
80
|
+
|
|
81
|
+
## 22.1.1
|
|
82
|
+
|
|
83
|
+
### Patch Changes
|
|
84
|
+
|
|
85
|
+
- [#495](https://github.com/core-ds/arui-scripts/pull/495) [`3a00087`](https://github.com/core-ds/arui-scripts/commit/3a00087aa6e8ade68f9e5d2781641f33caca50d7) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - удален неиспользуемый импорт get-port в файле run-client-dev-server.ts
|
|
86
|
+
|
|
87
|
+
## 22.1.0
|
|
88
|
+
|
|
89
|
+
### Minor Changes
|
|
90
|
+
|
|
91
|
+
- [#426](https://github.com/core-ds/arui-scripts/pull/426) [`48ff487`](https://github.com/core-ds/arui-scripts/commit/48ff487b52a98c8d5d5118c0338bcbd888c6ce55) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - добавлена возможность запускать тесты c помощью vitest
|
|
92
|
+
|
|
93
|
+
## 22.0.1
|
|
94
|
+
|
|
95
|
+
### Patch Changes
|
|
96
|
+
|
|
97
|
+
- [#483](https://github.com/core-ds/arui-scripts/pull/483) [`b19bd97`](https://github.com/core-ds/arui-scripts/commit/b19bd97cfc607752f3211968cd83771e7ded2f3c) Thanks [@ngg-dev](https://github.com/ngg-dev)! - Обновление импорта для get-port, так как начиная с версии 6.0.0, данная библиотека полностью переведена на ESM
|
|
98
|
+
|
|
99
|
+
## 22.0.0
|
|
100
|
+
|
|
101
|
+
### Major Changes
|
|
102
|
+
|
|
103
|
+
- [#470](https://github.com/core-ds/arui-scripts/pull/470) [`6f3178f`](https://github.com/core-ds/arui-scripts/commit/6f3178f9e6e37d4b21d1bcd08a9ad6c469ae59c2) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - В **arui-scripts** переведены инструменты сборки на **Rspack 2** и **@rspack/dev-server 2**.
|
|
104
|
+
|
|
105
|
+
## Почему мажорный релиз
|
|
106
|
+
|
|
107
|
+
Поднято требование к node.js: для разработки теперь требуется **20.19.0 и выше** или **22.12.0 и выше** (см. поле `engines` в `package.json`). На **node.js 18** и на **20.0–20.18** новая версия не рассчитана, потому что этого требует сам Rspack 2 и dev-server 2.
|
|
108
|
+
|
|
109
|
+
## Что это означает для проектов на arui-scripts
|
|
110
|
+
|
|
111
|
+
- **Обычный сценарий** (настройки из доки, без своих оверрайдов webpack/rspack/devServer): после обновления пакета достаточно **поднять версию node.js** до поддерживаемой версии и прогнать `yarn start` / `yarn build`.
|
|
112
|
+
- **Если в проекте есть оверрайды** (`arui-scripts` override с `devServer`, `proxy`, `webpackClient` и тд.): часть старых опций пропала или переименована в Rspack 2 и в dev-server 2. Например, в прокси dev-сервера больше нет `bypass`, вместо него теперь используются фильтры путей и колбэки в `on.*`. Подробнее про это в ссылка ниже.
|
|
113
|
+
|
|
114
|
+
## Ссылки про миграцию
|
|
115
|
+
|
|
116
|
+
- [Rspack: обновление с 1.x на 2.0](https://rspack.rs/guide/migration/rspack_1.x)
|
|
117
|
+
- [@rspack/dev-server: с v1 на v2](https://github.com/rstackjs/rspack-dev-server/blob/main/docs/migrate-v1-to-v2.md)
|
|
118
|
+
|
|
119
|
+
## 21.0.5
|
|
120
|
+
|
|
121
|
+
### Patch Changes
|
|
122
|
+
|
|
123
|
+
- [#480](https://github.com/core-ds/arui-scripts/pull/480) [`54ee0bf`](https://github.com/core-ds/arui-scripts/commit/54ee0bf09c5fae5ff329bdf7394044d2b0aab851) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - Отключен autoprefixer в cерверной конфигурации postcss, чтобы CSS modules в server сборке не генерировали предупреждения при таргете `current node`.
|
|
124
|
+
|
|
125
|
+
## 21.0.4
|
|
4
126
|
|
|
5
127
|
### Patch Changes
|
|
6
128
|
|
|
7
|
-
- [#
|
|
129
|
+
- [#467](https://github.com/core-ds/arui-scripts/pull/467) [`e6d6a40`](https://github.com/core-ds/arui-scripts/commit/e6d6a40c5200fcb128850f44ddf0e676b144624b) Thanks [@Los-Santos1](https://github.com/Los-Santos1)! - Исправлен запуск Jest на Windows из-за абсолютных путей в import
|
|
130
|
+
|
|
131
|
+
## 21.0.3
|
|
132
|
+
|
|
133
|
+
### Patch Changes
|
|
134
|
+
|
|
135
|
+
- [#463](https://github.com/core-ds/arui-scripts/pull/463) [`b27ac8c`](https://github.com/core-ds/arui-scripts/commit/b27ac8c40420df53704a12d83163c31fa6943495) Thanks [@ngg-dev](https://github.com/ngg-dev)! - - удаление устаревшего пакета react-dev-utils для решение проблем с уязвимостями в пакете ajv
|
|
136
|
+
- добавление пакета get-port
|
|
137
|
+
- создание утилит getLocalIdent и printBuildError
|
|
138
|
+
|
|
139
|
+
## 21.0.2
|
|
140
|
+
|
|
141
|
+
### Patch Changes
|
|
142
|
+
|
|
143
|
+
- [#464](https://github.com/core-ds/arui-scripts/pull/464) [`b17a8c3`](https://github.com/core-ds/arui-scripts/commit/b17a8c30774df8c4fbf854fdebe440d863d177b4) Thanks [@TheDiamondDoge](https://github.com/TheDiamondDoge)! - Исправляем название пакета на common-app-html в exemptions
|
|
144
|
+
|
|
145
|
+
## 21.0.1
|
|
146
|
+
|
|
147
|
+
### Patch Changes
|
|
148
|
+
|
|
149
|
+
- [#461](https://github.com/core-ds/arui-scripts/pull/461) [`e99e957`](https://github.com/core-ds/arui-scripts/commit/e99e95759bf072bb19eff08618c0233fa5bd742d) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Пакет fork-ts-checker-webpack-plugin заменен на ts-checker-rspack-plugin. Вам больше не требуется иметь webpack в зависимостях. Баг был представлен в версии 20.12.2
|
|
150
|
+
|
|
151
|
+
## 21.0.0
|
|
152
|
+
|
|
153
|
+
### Major Changes
|
|
154
|
+
|
|
155
|
+
- [#449](https://github.com/core-ds/arui-scripts/pull/449) [`63a7336`](https://github.com/core-ds/arui-scripts/commit/63a7336cc279d6eeab3bc8ba24246a036e683d72) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Добавлена поддержка ts@6. Удалена поддержка ts@4.
|
|
156
|
+
|
|
157
|
+
В базовом tsconfig.json значение `compilerOptions.moduleResolution` изменено с "node" на "bundler".
|
|
158
|
+
Режим bundler включает поддержку современных механизмов резолва пакетов — в первую очередь поля exports в package.json зависимостей.
|
|
159
|
+
Это приближает поведение TypeScript к тому, как модули реально резолвятся rspack.
|
|
160
|
+
|
|
161
|
+
### Что может сломаться
|
|
162
|
+
|
|
163
|
+
**Импорты по путям, не объявленным в `exports` зависимости**
|
|
164
|
+
|
|
165
|
+
Это основная причина возможных ошибок. Если у пакета в `package.json` есть поле `exports`, TypeScript теперь использует **только его** для резолва. Прямые импорты внутренностей пакета, не описанные в `exports`, перестанут резолвиться:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
TS2307: Cannot find module 'some-lib/dist/utils' or its corresponding type declarations.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Примеры импортов, которые могут сломаться:
|
|
172
|
+
|
|
173
|
+
```ts
|
|
174
|
+
// Импорт из внутренней директории пакета
|
|
175
|
+
import { helper } from 'some-lib/dist/internal/utils';
|
|
176
|
+
|
|
177
|
+
// Субпутевой импорт, не описанный в exports
|
|
178
|
+
import { Component } from '@scope/ui-kit/some-undeclared-path';
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Изменение приоритета `typesVersions` vs `exports`**
|
|
182
|
+
|
|
183
|
+
Если зависимость использует одновременно `typesVersions` и `exports` с условием `types`, то в режиме `bundler` приоритет получает `exports`. В редких случаях это может привести к подхвату других типов.
|
|
184
|
+
|
|
185
|
+
**Пакеты с неполными `exports` (только `require`)**
|
|
186
|
+
|
|
187
|
+
Если зависимость в `exports` указала только условие `require` без `import` или `default`, импорт может не зарезолвиться. На практике это редкость.
|
|
188
|
+
|
|
189
|
+
## 20.12.2
|
|
190
|
+
|
|
191
|
+
### Patch Changes
|
|
192
|
+
|
|
193
|
+
- [#458](https://github.com/core-ds/arui-scripts/pull/458) [`13b7c96`](https://github.com/core-ds/arui-scripts/commit/13b7c96ec280322649f4e30f413187c4e8c6f8df) Thanks [@ngg-dev](https://github.com/ngg-dev)! - обновлены версии внутренних зависимостей для фикса уязвимостей связанных с пакетом ajv
|
|
194
|
+
|
|
195
|
+
## 20.12.1
|
|
196
|
+
|
|
197
|
+
### Patch Changes
|
|
198
|
+
|
|
199
|
+
- [#440](https://github.com/core-ds/arui-scripts/pull/440) [`a1c0cc1`](https://github.com/core-ds/arui-scripts/commit/a1c0cc1ef45a44cc97f4419dd333bab811c04cd9) Thanks [@Los-Santos1](https://github.com/Los-Santos1)! - Обновлены зависимости для устранения уязвимостей транзитивных пакетов: imagemin-svgo ^12.0.0, css-minimizer-webpack-plugin 5.0.0.
|
|
200
|
+
|
|
201
|
+
## 20.12.0
|
|
202
|
+
|
|
203
|
+
### Minor Changes
|
|
204
|
+
|
|
205
|
+
- [#404](https://github.com/core-ds/arui-scripts/pull/404) [`ce6539b`](https://github.com/core-ds/arui-scripts/commit/ce6539b1e408591624bee7e1aacaab2681dfa25c) Thanks [@dmitrbrvsk](https://github.com/dmitrbrvsk)! - обновлен базовый докер образ arui-scripts
|
|
206
|
+
|
|
207
|
+
## 20.11.1
|
|
208
|
+
|
|
209
|
+
### Patch Changes
|
|
210
|
+
|
|
211
|
+
- [#424](https://github.com/core-ds/arui-scripts/pull/424) [`2df564c`](https://github.com/core-ds/arui-scripts/commit/2df564c57272cd03fb72f9f610887371ae0b2126) Thanks [@ngg-dev](https://github.com/ngg-dev)! - Обновил пакеты для устранения уязвимости CVE-2025-15284
|
|
212
|
+
|
|
213
|
+
## 20.11.0
|
|
214
|
+
|
|
215
|
+
### Minor Changes
|
|
216
|
+
|
|
217
|
+
- [#420](https://github.com/core-ds/arui-scripts/pull/420) [`3f26ba9`](https://github.com/core-ds/arui-scripts/commit/3f26ba95f76ca88115330234c329dc360af78536) Thanks [@heymdall-legal](https://github.com/heymdall-legal)! - Изменено дефолтное значение для devSourceMap. Теперь они будут по умолчанию более качественные
|
|
8
218
|
|
|
9
219
|
## 20.10.0
|
|
10
220
|
|
package/README.md
CHANGED
|
@@ -27,14 +27,25 @@ npm install arui-scripts --save-dev
|
|
|
27
27
|
2. Создайте необходимые файлы
|
|
28
28
|
- `src/index.{js,jsx,ts,tsx}` - входная точка для клиентского приложения.
|
|
29
29
|
- `src/server/index.{js,jsx,tsx}` - входная точка для серверного приложения.
|
|
30
|
-
|
|
30
|
+
Если нужен только клиент, смотреть [Режим clientOnly](./docs/client-only.md).
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
**Полифилы (опционально).**
|
|
33
|
+
Отдельный бандл полифилов не обязателен: по умолчанию [clientPolyfillsEntry](docs/settings.md#clientpolyfillsentry) не задан. Для большинства целей по браузерам (их можно сузить или расширить через overrides `supporting-browsers`, см. [Тонкая настройка](docs/overrides.md#тонкая-настройка)) можно не подключать отдельный файл полифилов.
|
|
34
|
+
|
|
35
|
+
Если полифилы все же нужны (старые браузеры или режим `entry` у SWC/Babel с `core-js`):
|
|
36
|
+
|
|
37
|
+
- добавьте в проект зависимость `core-js` (при необходимости)
|
|
38
|
+
- создайте файл, например `src/polyfills.ts`, с импортом `import 'core-js/stable';`
|
|
39
|
+
- укажите в [arui-scripts.config](docs/settings.md) или в `package.json` в секции `aruiScripts`: `clientPolyfillsEntry: './src/polyfills'`
|
|
40
|
+
|
|
41
|
+
Пути ко входным точкам и полифилам можно переопределить через настройки.
|
|
42
|
+
Полный список в [документации по настройкам](docs/settings.md).
|
|
33
43
|
|
|
34
44
|
3. Используйте команды из `arui-scripts`!
|
|
35
45
|
|
|
36
46
|
Документация
|
|
37
47
|
===
|
|
48
|
+
- [Список актуальных версий docker-образов](../alpine-node-nginx/README.md)
|
|
38
49
|
- [Настройки](docs/settings.md)
|
|
39
50
|
- [Команды](docs/commands.md)
|
|
40
51
|
- [Примеры входных точек](docs/examples.md)
|
|
@@ -45,3 +56,4 @@ npm install arui-scripts --save-dev
|
|
|
45
56
|
- [Особенности поведения](docs/caveats.md)
|
|
46
57
|
- [Использование модулей](docs/modules.md)
|
|
47
58
|
- [Client-only режим](./docs/client-only.md)
|
|
59
|
+
- [Словарь для сжатия](./docs/compression-dictionary.md)
|
package/build/bin/index.d.ts
CHANGED
package/build/bin/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
/* eslint-disable global-require */
|
|
4
4
|
/* eslint import/no-dynamic-require: 0 */
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
6
|
const commands = {
|
|
6
7
|
start: () => require('../commands/start'),
|
|
7
8
|
'start:prod': () => require('../commands/start-prod'),
|
|
@@ -9,6 +10,7 @@ const commands = {
|
|
|
9
10
|
'docker-build': () => require('../commands/docker-build'),
|
|
10
11
|
'docker-build:compiled': () => require('../commands/docker-build-compiled'),
|
|
11
12
|
test: () => require('../commands/test'),
|
|
13
|
+
'test:vitest': () => require('../commands/test-vitest'),
|
|
12
14
|
'ensure-yarn': () => require('../commands/ensure-yarn'),
|
|
13
15
|
'archive-build': () => require('../commands/archive-build'),
|
|
14
16
|
'bundle-analyze': () => require('../commands/bundle-analyze'),
|
|
@@ -13,11 +13,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const chalk_1 = __importDefault(require("chalk"));
|
|
16
|
-
const printBuildError_1 = __importDefault(require("react-dev-utils/printBuildError"));
|
|
17
16
|
const build_wrapper_1 = __importDefault(require("./build-wrapper"));
|
|
18
17
|
const client_assets_sizes_1 = require("../util/client-assets-sizes");
|
|
19
18
|
const webpack_client_prod_1 = require("../../configs/webpack.client.prod");
|
|
20
19
|
const load_browserslist_1 = require("../util/load-browserslist");
|
|
20
|
+
const print_build_error_1 = require("../util/print-build-error");
|
|
21
21
|
(0, load_browserslist_1.loadBrowserslist)();
|
|
22
22
|
console.log(chalk_1.default.magenta('Building client...'));
|
|
23
23
|
function main() {
|
|
@@ -46,7 +46,7 @@ function main() {
|
|
|
46
46
|
}
|
|
47
47
|
catch (err) {
|
|
48
48
|
console.log(chalk_1.default.red('Failed to compile client.\n'));
|
|
49
|
-
(0,
|
|
49
|
+
(0, print_build_error_1.printBuildError)(err);
|
|
50
50
|
process.exit(1);
|
|
51
51
|
}
|
|
52
52
|
});
|
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const chalk_1 = __importDefault(require("chalk"));
|
|
7
|
-
const printBuildError_1 = __importDefault(require("react-dev-utils/printBuildError"));
|
|
8
7
|
const build_wrapper_1 = __importDefault(require("./build-wrapper"));
|
|
9
8
|
const webpack_server_prod_1 = require("../../configs/webpack.server.prod");
|
|
10
9
|
const supporting_node_1 = require("../../configs/supporting-node");
|
|
10
|
+
const print_build_error_1 = require("../util/print-build-error");
|
|
11
11
|
process.env.BROWSERSLIST = supporting_node_1.supportingNode.join(',');
|
|
12
12
|
console.log(chalk_1.default.magenta('Building server...'));
|
|
13
13
|
(0, build_wrapper_1.default)(webpack_server_prod_1.webpackServerConfig)
|
|
@@ -24,6 +24,6 @@ console.log(chalk_1.default.magenta('Building server...'));
|
|
|
24
24
|
})
|
|
25
25
|
.catch((err) => {
|
|
26
26
|
console.log(chalk_1.default.red('Failed to compile server.\n'));
|
|
27
|
-
(0,
|
|
27
|
+
(0, print_build_error_1.printBuildError)(err);
|
|
28
28
|
process.exit(1);
|
|
29
29
|
});
|
|
@@ -15,6 +15,17 @@ const webpack_bundle_analyzer_1 = require("webpack-bundle-analyzer");
|
|
|
15
15
|
const app_configs_1 = require("../../configs/app-configs");
|
|
16
16
|
const webpack_client_prod_1 = require("../../configs/webpack.client.prod");
|
|
17
17
|
const make_tmp_dir_1 = require("../util/make-tmp-dir");
|
|
18
|
+
// В rspack по умолчанию больше не включаются эти поля, но для webpack-bundle-analyzer они нужны
|
|
19
|
+
// https://rspack.rs/guide/migration/rspack_1.x#changed-default-parameters-of-statstojson
|
|
20
|
+
const bundleAnalyzerStatsOptions = {
|
|
21
|
+
assets: true,
|
|
22
|
+
chunks: true,
|
|
23
|
+
chunkGroups: true,
|
|
24
|
+
chunkModules: true,
|
|
25
|
+
entryPoints: true,
|
|
26
|
+
entrypoints: true,
|
|
27
|
+
modules: true,
|
|
28
|
+
};
|
|
18
29
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
19
30
|
console.log('Starting bundle analysis...');
|
|
20
31
|
const clientWebpackConfigs = Array.isArray(webpack_client_prod_1.webpackClientConfig)
|
|
@@ -23,11 +34,13 @@ const make_tmp_dir_1 = require("../util/make-tmp-dir");
|
|
|
23
34
|
/* eslint-disable no-param-reassign */
|
|
24
35
|
const promises = clientWebpackConfigs.map((webpackConfig, i) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
36
|
const tmpDir = yield (0, make_tmp_dir_1.makeTmpDir)(i.toString());
|
|
37
|
+
const webpackStatsOptions = Object.assign(Object.assign({}, (typeof webpackConfig.stats === 'object' ? webpackConfig.stats : {})), bundleAnalyzerStatsOptions);
|
|
26
38
|
webpackConfig.plugins = [
|
|
27
39
|
...(webpackConfig.plugins || []),
|
|
28
40
|
new webpack_bundle_analyzer_1.BundleAnalyzerPlugin({
|
|
29
41
|
generateStatsFile: true,
|
|
30
42
|
statsFilename: app_configs_1.configs.statsOutputPath,
|
|
43
|
+
statsOptions: bundleAnalyzerStatsOptions,
|
|
31
44
|
analyzerPort: 'auto',
|
|
32
45
|
analyzerMode: 'server',
|
|
33
46
|
openAnalyzer: true,
|
|
@@ -35,6 +48,7 @@ const make_tmp_dir_1 = require("../util/make-tmp-dir");
|
|
|
35
48
|
}), // webpack-bundle-analyzer has incorrect types
|
|
36
49
|
new rspack_plugin_1.RsdoctorRspackPlugin({}),
|
|
37
50
|
];
|
|
51
|
+
webpackConfig.stats = webpackStatsOptions;
|
|
38
52
|
webpackConfig.output = Object.assign(Object.assign({}, webpackConfig.output), { path: tmpDir });
|
|
39
53
|
}));
|
|
40
54
|
yield Promise.all(promises);
|
|
@@ -19,13 +19,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
19
19
|
}) : function(o, v) {
|
|
20
20
|
o["default"] = v;
|
|
21
21
|
});
|
|
22
|
-
var __importStar = (this && this.__importStar) || function (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
};
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
29
39
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
30
40
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
31
41
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
2
3
|
if (process.env.npm_config_user_agent && process.env.npm_config_user_agent.indexOf('yarn') === -1) {
|
|
3
4
|
console.log(process.env);
|
|
4
5
|
console.error('You must use yarn to install dependencies, now using', process.env.npm_execpath);
|
|
@@ -1,27 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -49,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
49
26
|
exports.getJestConfig = void 0;
|
|
50
27
|
const fs_1 = __importDefault(require("fs"));
|
|
51
28
|
const path_1 = __importDefault(require("path"));
|
|
29
|
+
const url_1 = require("url");
|
|
52
30
|
const jest_config_1 = require("jest-config");
|
|
53
31
|
const jest_resolve_1 = __importDefault(require("jest-resolve"));
|
|
54
32
|
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
@@ -71,7 +49,7 @@ function getAppJestConfig() {
|
|
|
71
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
72
50
|
const jestConfigPath = path_1.default.resolve(process.cwd(), 'jest.config.js');
|
|
73
51
|
if (fs_1.default.existsSync(jestConfigPath)) {
|
|
74
|
-
return (yield
|
|
52
|
+
return (yield import((0, url_1.pathToFileURL)(jestConfigPath).href)).default;
|
|
75
53
|
}
|
|
76
54
|
if (app_configs_1.configs.appPackage.jest) {
|
|
77
55
|
return app_configs_1.configs.appPackage.jest;
|
|
@@ -95,7 +73,8 @@ function getPresetConfig(presetPath) {
|
|
|
95
73
|
if (!presetModule) {
|
|
96
74
|
throw new Error(`Cannot find module '${normalizedPresetPath}'`);
|
|
97
75
|
}
|
|
98
|
-
const _a = (yield
|
|
76
|
+
const _a = (yield import((0, url_1.pathToFileURL)(presetModule).href))
|
|
77
|
+
.default, { preset: subPreset } = _a, preset = __rest(_a, ["preset"]);
|
|
99
78
|
if (subPreset) {
|
|
100
79
|
console.warn(`Jest can't handle preset chaining. Preset "${subPreset}" will be ignored.`);
|
|
101
80
|
}
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
36
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
37
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const run_vitest_1 = require("../util/run-vitest");
|
|
4
|
+
process.env.BABEL_ENV = 'test';
|
|
5
|
+
process.env.NODE_ENV = 'test';
|
|
6
|
+
process.env.PUBLIC_URL = '';
|
|
7
|
+
const args = process.argv.slice(3);
|
|
8
|
+
(0, run_vitest_1.runVitest)({ args })
|
|
9
|
+
.then((code) => {
|
|
10
|
+
process.exit(code);
|
|
11
|
+
})
|
|
12
|
+
.catch((error) => {
|
|
13
|
+
console.error('Error running Vitest:', error);
|
|
14
|
+
process.exit(1);
|
|
15
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getLocalIdent = getLocalIdent;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
function getLocalIdent(context, _localIdentName, localName) {
|
|
10
|
+
const isIndexModule = /index\.module\.(css|scss|sass)$/.test(context.resourcePath);
|
|
11
|
+
const relativePath = path_1.default.posix.relative(context.rootContext, context.resourcePath);
|
|
12
|
+
const hash = crypto_1.default
|
|
13
|
+
.createHash('md5')
|
|
14
|
+
.update(relativePath + localName)
|
|
15
|
+
.digest('base64')
|
|
16
|
+
.slice(0, 5)
|
|
17
|
+
.replace(/\+/g, '_')
|
|
18
|
+
.replace(/\//g, '_')
|
|
19
|
+
.replace(/=/g, '');
|
|
20
|
+
let baseName;
|
|
21
|
+
if (isIndexModule) {
|
|
22
|
+
baseName = path_1.default.basename(path_1.default.dirname(context.resourcePath));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
baseName = path_1.default.basename(context.resourcePath, '.module.css');
|
|
26
|
+
}
|
|
27
|
+
const className = `${baseName}_${localName}__${hash}`;
|
|
28
|
+
return className.replace('.module_', '_').replace(/\./g, '_');
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function printBuildError(err: Error | null | undefined): void;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.printBuildError = printBuildError;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function printBuildError(err) {
|
|
9
|
+
const message = err === null || err === void 0 ? void 0 : err.message;
|
|
10
|
+
const stack = err === null || err === void 0 ? void 0 : err.stack;
|
|
11
|
+
if (stack && typeof message === 'string' && message.includes('from Terser')) {
|
|
12
|
+
try {
|
|
13
|
+
const matched = /(.+)\[(.+):(.+),(.+)\]\[.+\]/.exec(stack);
|
|
14
|
+
if (!matched) {
|
|
15
|
+
throw new Error('Using errors for control flow is bad.');
|
|
16
|
+
}
|
|
17
|
+
const problemPath = matched[2];
|
|
18
|
+
const line = matched[3];
|
|
19
|
+
const column = matched[4];
|
|
20
|
+
const columnFormatted = column === '0' ? '' : `:${column}`;
|
|
21
|
+
console.log(`Failed to minify the code from this file: \n\n${chalk_1.default.yellow(`\t${problemPath}:${line}${columnFormatted}`)}\n`);
|
|
22
|
+
}
|
|
23
|
+
catch (ignored) {
|
|
24
|
+
console.log('Failed to minify the bundle.', err);
|
|
25
|
+
}
|
|
26
|
+
console.log('Read more here: https://cra.link/failed-to-minify');
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
console.log(`${message || err}\n`);
|
|
30
|
+
}
|
|
31
|
+
console.log();
|
|
32
|
+
}
|