arui-scripts 18.6.1 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-test.log +6 -10
- package/CHANGELOG.md +31 -0
- package/build/commands/build/build-wrapper.d.ts +3 -3
- package/build/commands/build/build-wrapper.js +2 -2
- package/build/commands/bundle-analyze/index.js +5 -3
- package/build/commands/util/client-assets-sizes.d.ts +1 -1
- package/build/commands/util/run-client-dev-server.d.ts +1 -1
- package/build/commands/util/run-client-dev-server.js +6 -6
- package/build/commands/util/run-server-watch-compiler.d.ts +2 -2
- package/build/commands/util/run-server-watch-compiler.js +2 -2
- package/build/configs/app-configs/calculate-dependent-config.js +1 -1
- package/build/configs/app-configs/get-defaults.js +4 -7
- package/build/configs/app-configs/types.d.ts +4 -17
- package/build/configs/app-configs/warn-about-deprecations.js +14 -5
- package/build/configs/babel-client.js +1 -1
- package/build/configs/babel-dependencies.js +1 -1
- package/build/configs/babel-server.js +1 -1
- package/build/configs/client-env-config/client-config-plugin.d.ts +1 -1
- package/build/configs/config-extras/minimizers/imagemin/imagemin.d.ts +27 -1
- package/build/configs/config-extras/minimizers/imagemin/imagemin.js +55 -41
- package/build/configs/dev-server.js +39 -30
- package/build/configs/modules.d.ts +3 -3
- package/build/configs/modules.js +25 -2
- package/build/configs/stats-options.d.ts +2 -2
- package/build/configs/util/apply-overrides.d.ts +12 -12
- package/build/configs/util/find-loader.d.ts +2 -2
- package/build/configs/util/find-plugin.d.ts +9 -6
- package/build/configs/webpack.client.d.ts +2 -2
- package/build/configs/webpack.client.dev.d.ts +1 -1
- package/build/configs/webpack.client.js +23 -55
- package/build/configs/webpack.client.prod.d.ts +1 -1
- package/build/configs/webpack.server.d.ts +1 -1
- package/build/configs/webpack.server.dev.d.ts +1 -1
- package/build/configs/webpack.server.js +13 -43
- package/build/configs/webpack.server.prod.d.ts +1 -1
- package/build/plugins/arui-runtime/arui-runtime-module.d.ts +2 -2
- package/build/plugins/arui-runtime/arui-runtime-module.js +5 -8
- package/build/plugins/arui-runtime/index.d.ts +2 -2
- package/build/plugins/arui-runtime/index.js +2 -5
- package/build/plugins/reload-server-plugin.d.ts +10 -0
- package/build/plugins/reload-server-plugin.js +44 -0
- package/build/plugins/watch-missing-node-modules-plugin.d.ts +5 -5
- package/build/plugins/watch-missing-node-modules-plugin.js +3 -1
- package/build/tsconfig-local.tsbuildinfo +1 -1
- package/docs/commands.md +1 -1
- package/docs/settings.md +10 -33
- package/package.json +8 -6
- package/build/plugins/reload-server-webpack-plugin.d.ts +0 -9
- package/build/plugins/reload-server-webpack-plugin.js +0 -44
package/docs/commands.md
CHANGED
|
@@ -119,7 +119,7 @@ arui-scripts archive-build
|
|
|
119
119
|
|
|
120
120
|
### bundle-analyze
|
|
121
121
|
|
|
122
|
-
Запускает [webpack-bundle-analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer) для анализа
|
|
122
|
+
Запускает [webpack-bundle-analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer) и [rsdoctor](https://rsdoctor.dev/) для анализа бандла и сборки.
|
|
123
123
|
Так же при запуске будет генерироваться [stats-файл](https://webpack.js.org/api/stats/), который можно использовать в
|
|
124
124
|
[сторонних](http://webpack.github.io/analyse/) инструментах, например для понимания почему тот или иной модуль попал в бандл.
|
|
125
125
|
По умолчанию файл будет писаться в `.build/stats.json`, вы можете поменять это через отдельную [настройку statsOutputFilename](settings.md#statsOutputFilename).
|
package/docs/settings.md
CHANGED
|
@@ -67,7 +67,7 @@ ARUI_SCRIPTS_CONFIG="{\"clientEntry\":{\"mobile\":\"./src/mobile\",\"desktop\":\
|
|
|
67
67
|
Режим отладки, в котором не выполняются некоторые нежелательные операции и выводится больше сообщений об ошибках, по умолчанию `false`.
|
|
68
68
|
|
|
69
69
|
#### devSourceMaps
|
|
70
|
-
Какой вид source-map использовать в режиме разработки. По умолчанию `
|
|
70
|
+
Какой вид source-map использовать в режиме разработки. По умолчанию `inline-cheap-source-map`. Эта настройка может сильно влиять на время сборки.
|
|
71
71
|
Подробнее можно почитать [здесь](https://webpack.js.org/configuration/devtool/).
|
|
72
72
|
|
|
73
73
|
:warning: **Внимание**. При использовании любых source-map на основании eval webpack-dev-server будет
|
|
@@ -87,7 +87,7 @@ ARUI_SCRIPTS_CONFIG="{\"clientEntry\":{\"mobile\":\"./src/mobile\",\"desktop\":\
|
|
|
87
87
|
Пресеты, которые будут использоваться для настройки сборки. См. [пресеты](presets.md).
|
|
88
88
|
|
|
89
89
|
#### proxy
|
|
90
|
-
Позволяет настроить проксирование запросов в dev-режиме. По умолчанию `
|
|
90
|
+
Позволяет настроить проксирование запросов в dev-режиме. По умолчанию `[]`. Так же этот параметр можно задать в `package.json`.
|
|
91
91
|
|
|
92
92
|
В случае, если ваш фронт должен обращаться к API, отличному от вашего nodejs сервера, в **дев режиме** вы можете настроить проксирование запросов.
|
|
93
93
|
|
|
@@ -97,21 +97,22 @@ ARUI_SCRIPTS_CONFIG="{\"clientEntry\":{\"mobile\":\"./src/mobile\",\"desktop\":\
|
|
|
97
97
|
import { PackageSettings } from 'arui-scripts';
|
|
98
98
|
|
|
99
99
|
const settings: PackageSettings = {
|
|
100
|
-
proxy:
|
|
101
|
-
|
|
100
|
+
proxy: [
|
|
101
|
+
{
|
|
102
|
+
context: '/corp-shared-ui',
|
|
102
103
|
target: 'http://some-other-host',
|
|
103
104
|
headers: {
|
|
104
105
|
host: 'some-other-host',
|
|
105
106
|
},
|
|
106
107
|
},
|
|
107
|
-
|
|
108
|
+
],
|
|
108
109
|
};
|
|
109
110
|
|
|
110
111
|
export default settings;
|
|
111
112
|
```
|
|
112
113
|
|
|
113
114
|
Такая конфигурация будет проксировать запросы к `http://localhost:8080/corp-shared-ui/` на `http://some-other-host/corp-shared-ui`.
|
|
114
|
-
Подробнее о конфигурации прокси сервера можно почитать в [документации
|
|
115
|
+
Подробнее о конфигурации прокси сервера можно почитать в [документации rspack](https://rspack.dev/guide/features/dev-server#proxy).
|
|
115
116
|
|
|
116
117
|
:warning: Эта настройка работает только в **дев режиме**.
|
|
117
118
|
|
|
@@ -212,22 +213,8 @@ const settings = {
|
|
|
212
213
|
- `/^react-style-proptype$/`
|
|
213
214
|
- `/^thrift-services\/proptypes/`
|
|
214
215
|
|
|
215
|
-
#### useTscLoader
|
|
216
|
-
**Deprecated** Используйте настройку [codeLoader](#codeloader)
|
|
217
|
-
|
|
218
|
-
Использовать ts-loader вместо babel-loader для обработки ts файлов. **Не рекомендуется к использованию**.
|
|
219
|
-
|
|
220
|
-
babel-loader является предпочтительным инструментом сборки, его стоят заменять только если в вашем проекте используется неподдерживаемый им синтаксис:
|
|
221
|
-
|
|
222
|
-
- namespaces
|
|
223
|
-
- Кастинг типов через `<Type>value`
|
|
224
|
-
- enum merging
|
|
225
|
-
- legacy import/export (`import = require('module')`, `export = foo`)
|
|
226
|
-
|
|
227
|
-
Рекомендуется обновить код проекта до поддерживаемого синтаксиса и использовать babel-loader.
|
|
228
|
-
|
|
229
216
|
#### codeLoader
|
|
230
|
-
Позволяет выбрать какой инструмент использовать для обработки js и ts кода приложения. По умолчанию `
|
|
217
|
+
Позволяет выбрать какой инструмент использовать для обработки js и ts кода приложения. По умолчанию `swc`.
|
|
231
218
|
|
|
232
219
|
Возможные значения:
|
|
233
220
|
- `babel` - для всего кода будет использоваться `babel-loader`;
|
|
@@ -238,21 +225,11 @@ babel-loader является предпочтительным инструме
|
|
|
238
225
|
Использование swc позволяет значительно ускорить сборку (до 2 раз на больших проектах), но не будет создавать полностью идентичный с babel код.
|
|
239
226
|
Итоговый бандл может получиться немного больше, чем при использовании babel, но разница полностью компенсируется при использовании сжатия.
|
|
240
227
|
|
|
241
|
-
#### webpack4Compatibility
|
|
242
|
-
**Deprecated** Эта настройка будет удалена в будущих версиях скриптов
|
|
243
|
-
|
|
244
|
-
Включить ли режим совместимости с webpack 4. По умолчанию `false`. Подробнее можно почитать в этом [issue](https://github.com/webpack/webpack/issues/14580).
|
|
245
|
-
|
|
246
228
|
#### installServerSourceMaps
|
|
247
229
|
Добавлять ли в серверную сборку пакет source-map-support. По умолчанию `false`.
|
|
248
230
|
|
|
249
|
-
#### jestUseTsJest
|
|
250
|
-
**Deprecated** Используйте настройку [jestCodeTransformer](#jestcodetransformer)
|
|
251
|
-
|
|
252
|
-
Позволяет использовать `ts-jest` вместо `babel-jest` для обработки `ts` файлов при запуске тестов. По умолчанию `false`.
|
|
253
|
-
|
|
254
231
|
#### jestCodeTransformer
|
|
255
|
-
Позволяет выбрать какой инструмент использовать для обработки js и ts кода приложения при запуске тестов. По умолчанию `
|
|
232
|
+
Позволяет выбрать какой инструмент использовать для обработки js и ts кода приложения при запуске тестов. По умолчанию `swc`.
|
|
256
233
|
|
|
257
234
|
Возможные значения:
|
|
258
235
|
- `babel` - для всего кода будет использоваться `babel-jest`;
|
|
@@ -262,7 +239,7 @@ babel-loader является предпочтительным инструме
|
|
|
262
239
|
|
|
263
240
|
#### collectCoverage
|
|
264
241
|
Добавлять ли инструменты для сборки coverage при сборке. По умолчанию определяется по env переменным - будет выставлено в `true` если `NODE_ENV = 'cypress'` или `USE_ISTANBUL = 'enabled'`.
|
|
265
|
-
Сбор coverage не будет работать при использовании `
|
|
242
|
+
Сбор coverage не будет работать при использовании `codeLoader=tsc`.
|
|
266
243
|
|
|
267
244
|
### Обработка изображений
|
|
268
245
|
#### dataUrlMaxSize
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arui-scripts",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.0",
|
|
4
4
|
"main": "./build/index.js",
|
|
5
5
|
"typings": "./build/index.d.ts",
|
|
6
6
|
"license": "MPL-2.0",
|
|
@@ -37,7 +37,12 @@
|
|
|
37
37
|
"@babel/preset-typescript": "^7.23.3",
|
|
38
38
|
"@babel/runtime": "^7.23.8",
|
|
39
39
|
"@pmmmwh/react-refresh-webpack-plugin": "0.5.11",
|
|
40
|
-
"@
|
|
40
|
+
"@rsdoctor/rspack-plugin": "0.4.11",
|
|
41
|
+
"@rspack/cli": "1.1.5",
|
|
42
|
+
"@rspack/core": "1.1.5",
|
|
43
|
+
"@rspack/dev-server": "1.0.9",
|
|
44
|
+
"@rspack/plugin-react-refresh": "^1.0.0",
|
|
45
|
+
"@swc/core": "1.10.1",
|
|
41
46
|
"@swc/jest": "^0.2.36",
|
|
42
47
|
"assets-webpack-plugin": "7.1.1",
|
|
43
48
|
"autoprefixer": "^10.3.16",
|
|
@@ -92,8 +97,8 @@
|
|
|
92
97
|
"react-dev-utils": "12.0.1",
|
|
93
98
|
"react-refresh": "0.10.0",
|
|
94
99
|
"react-refresh-typescript": "2.0.2",
|
|
95
|
-
"reload-server-webpack-plugin": "1.0.1",
|
|
96
100
|
"rimraf": "^2.7.1",
|
|
101
|
+
"rspack-manifest-plugin": "5.0.1",
|
|
97
102
|
"run-script-webpack-plugin": "0.0.11",
|
|
98
103
|
"semver": "^7.5.4",
|
|
99
104
|
"shelljs": "0.8.5",
|
|
@@ -106,11 +111,8 @@
|
|
|
106
111
|
"ts-jest": "28.0.8",
|
|
107
112
|
"ts-loader": "9.4.4",
|
|
108
113
|
"ts-node": "9.1.1",
|
|
109
|
-
"tsconfig-paths-webpack-plugin": "3.5.1",
|
|
110
|
-
"webpack": "^5.95.0",
|
|
111
114
|
"webpack-bundle-analyzer": "4.10.2",
|
|
112
115
|
"webpack-deduplication-plugin": "^0.0.8",
|
|
113
|
-
"webpack-dev-server": "4.15.2",
|
|
114
116
|
"webpack-manifest-plugin": "3.2.0",
|
|
115
117
|
"webpack-node-externals": "3.0.0"
|
|
116
118
|
},
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// TODO: remove eslint-disable
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
4
|
-
const cluster = require('cluster');
|
|
5
|
-
const path = require('path');
|
|
6
|
-
const defaultOptions = {
|
|
7
|
-
script: 'server.js',
|
|
8
|
-
};
|
|
9
|
-
module.exports = class ReloadServerPlugin {
|
|
10
|
-
constructor({ script } = defaultOptions) {
|
|
11
|
-
this.done = null;
|
|
12
|
-
this.workers = [];
|
|
13
|
-
cluster.setupMaster({
|
|
14
|
-
exec: path.resolve(process.cwd(), script),
|
|
15
|
-
});
|
|
16
|
-
cluster.on('online', (worker) => {
|
|
17
|
-
this.workers.push(worker);
|
|
18
|
-
if (this.done) {
|
|
19
|
-
this.done();
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
apply(compiler) {
|
|
24
|
-
const afterEmit = (compilation, callback) => {
|
|
25
|
-
this.done = callback;
|
|
26
|
-
this.workers.forEach((worker) => {
|
|
27
|
-
try {
|
|
28
|
-
process.kill(worker.process.pid, 'SIGTERM');
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
console.warn(`Unable to kill process #${worker.process.pid}`);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
this.workers = [];
|
|
35
|
-
cluster.fork();
|
|
36
|
-
};
|
|
37
|
-
if (compiler.hooks) {
|
|
38
|
-
compiler.hooks.afterEmit.tapAsync('ReloadServerPlugin', afterEmit);
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
compiler.plugin('after-emit', afterEmit);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
};
|