arui-scripts 23.0.2 → 23.2.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 +9 -8
- package/CHANGELOG.md +12 -0
- package/README.md +23 -0
- package/build/bin/commands-registry.d.ts +8 -0
- package/build/bin/commands-registry.js +80 -0
- package/build/bin/create-cli.d.ts +2 -0
- package/build/bin/create-cli.js +34 -0
- package/build/bin/index.js +2 -23
- package/build/commands/build/client.js +6 -6
- package/build/commands/build/server.js +2 -2
- package/build/commands/bundle-analyze/index.js +4 -4
- package/build/commands/start/client.js +2 -2
- package/build/commands/start/index.js +1 -1
- package/build/commands/start/server.js +2 -2
- package/build/commands/start-prod/client.js +2 -2
- package/build/commands/start-prod/index.js +1 -1
- package/build/commands/start-prod/server.js +2 -2
- package/build/configs/app-configs/get-defaults.js +1 -1
- package/build/configs/app-configs/types.d.ts +3 -1
- package/build/configs/app-configs/warn-about-deprecations.js +5 -0
- package/build/configs/modules.d.ts +3 -1
- package/build/configs/modules.js +5 -3
- package/build/configs/{webpack.client.dev.js → rspack.client.dev.js} +3 -3
- package/build/configs/{webpack.client.js → rspack.client.js} +4 -4
- package/build/configs/{webpack.client.prod.js → rspack.client.prod.js} +3 -3
- package/build/configs/{webpack.server.dev.js → rspack.server.dev.js} +2 -2
- package/build/configs/{webpack.server.prod.js → rspack.server.prod.js} +2 -2
- package/build/configs/util/apply-overrides.d.ts +53 -23
- package/build/configs/util/apply-overrides.js +38 -2
- package/build/configs/util/find-plugin.d.ts +2 -2
- package/build/index.d.ts +1 -1
- package/build/index.js +2 -1
- package/build/plugins/reload-server-plugin.d.ts +1 -1
- package/build/plugins/watch-missing-node-modules-plugin.d.ts +1 -1
- package/docs/cli.md +23 -0
- package/docs/commands.md +31 -11
- package/package.json +3 -7
- package/tsconfig-local.tsbuildinfo +1 -1
- /package/build/configs/{webpack.client.d.ts → rspack.client.d.ts} +0 -0
- /package/build/configs/{webpack.client.dev.d.ts → rspack.client.dev.d.ts} +0 -0
- /package/build/configs/{webpack.client.prod.d.ts → rspack.client.prod.d.ts} +0 -0
- /package/build/configs/{webpack.server.d.ts → rspack.server.d.ts} +0 -0
- /package/build/configs/{webpack.server.dev.d.ts → rspack.server.dev.d.ts} +0 -0
- /package/build/configs/{webpack.server.js → rspack.server.js} +0 -0
- /package/build/configs/{webpack.server.prod.d.ts → rspack.server.prod.d.ts} +0 -0
|
@@ -2,19 +2,19 @@ import type * as rspack from '@rspack/core';
|
|
|
2
2
|
import { type Configuration as RspackDevServerConfiguration } from '@rspack/dev-server';
|
|
3
3
|
import { type Options as SwcOptions } from '@swc/core';
|
|
4
4
|
import { type AppContextWithConfigs } from '../app-configs/types';
|
|
5
|
-
import { type createSingleClientWebpackConfig } from '../
|
|
5
|
+
import { type createSingleClientWebpackConfig } from '../rspack.client';
|
|
6
6
|
import { type findLoader } from './find-loader';
|
|
7
7
|
import { type createFindPluginFunction } from './find-plugin';
|
|
8
8
|
type Overrides = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
rspack: rspack.Configuration | rspack.Configuration[];
|
|
10
|
+
rspackClient: rspack.Configuration | rspack.Configuration[];
|
|
11
|
+
rspackDev: rspack.Configuration | rspack.Configuration[];
|
|
12
|
+
rspackClientDev: rspack.Configuration | rspack.Configuration[];
|
|
13
|
+
rspackServer: rspack.Configuration;
|
|
14
|
+
rspackServerDev: rspack.Configuration;
|
|
15
|
+
rspackProd: rspack.Configuration;
|
|
16
|
+
rspackClientProd: rspack.Configuration | rspack.Configuration[];
|
|
17
|
+
rspackServerProd: rspack.Configuration;
|
|
18
18
|
devServer: RspackDevServerConfiguration;
|
|
19
19
|
stats: rspack.RspackOptionsNormalized['stats'];
|
|
20
20
|
babel: any;
|
|
@@ -37,14 +37,26 @@ type Overrides = {
|
|
|
37
37
|
serverExternalsExemptions: Array<string | RegExp>;
|
|
38
38
|
html: string;
|
|
39
39
|
};
|
|
40
|
+
declare const DEPRECATED_OVERRIDE_KEYS: {
|
|
41
|
+
readonly webpack: "rspack";
|
|
42
|
+
readonly webpackClient: "rspackClient";
|
|
43
|
+
readonly webpackDev: "rspackDev";
|
|
44
|
+
readonly webpackClientDev: "rspackClientDev";
|
|
45
|
+
readonly webpackServer: "rspackServer";
|
|
46
|
+
readonly webpackServerDev: "rspackServerDev";
|
|
47
|
+
readonly webpackProd: "rspackProd";
|
|
48
|
+
readonly webpackClientProd: "rspackClientProd";
|
|
49
|
+
readonly webpackServerProd: "rspackServerProd";
|
|
50
|
+
};
|
|
51
|
+
type DeprecatedOverrideKey = keyof typeof DEPRECATED_OVERRIDE_KEYS;
|
|
40
52
|
type OmitFirstArg<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
|
|
41
53
|
type BoundCreateSingleClientWebpackConfig = OmitFirstArg<typeof createSingleClientWebpackConfig>;
|
|
42
|
-
type
|
|
54
|
+
type ClientRspackAdditionalArgs = {
|
|
43
55
|
createSingleClientWebpackConfig: BoundCreateSingleClientWebpackConfig;
|
|
44
56
|
findLoader: typeof findLoader;
|
|
45
57
|
findPlugin: ReturnType<typeof createFindPluginFunction<'client'>>;
|
|
46
58
|
};
|
|
47
|
-
type
|
|
59
|
+
type ServerRspackAdditionalArgs = {
|
|
48
60
|
findLoader: typeof findLoader;
|
|
49
61
|
findPlugin: ReturnType<typeof createFindPluginFunction<'server'>>;
|
|
50
62
|
};
|
|
@@ -52,20 +64,38 @@ type ServerWebpackAdditionalArgs = {
|
|
|
52
64
|
* Дополнительные аргументы, которые будут переданы в функцию оверрайда
|
|
53
65
|
*/
|
|
54
66
|
type OverridesAdditionalArgs = {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
rspack: ClientRspackAdditionalArgs;
|
|
68
|
+
rspackClient: ClientRspackAdditionalArgs;
|
|
69
|
+
rspackDev: ClientRspackAdditionalArgs;
|
|
70
|
+
rspackClientDev: ClientRspackAdditionalArgs;
|
|
71
|
+
rspackProd: ClientRspackAdditionalArgs;
|
|
72
|
+
rspackClientProd: ClientRspackAdditionalArgs;
|
|
73
|
+
rspackServer: ServerRspackAdditionalArgs;
|
|
74
|
+
rspackServerDev: ServerRspackAdditionalArgs;
|
|
75
|
+
rspackServerProd: ServerRspackAdditionalArgs;
|
|
76
|
+
/** @deprecated используйте rspack */
|
|
77
|
+
webpack: ClientRspackAdditionalArgs;
|
|
78
|
+
/** @deprecated используйте rspackClient */
|
|
79
|
+
webpackClient: ClientRspackAdditionalArgs;
|
|
80
|
+
/** @deprecated используйте rspackDev */
|
|
81
|
+
webpackDev: ClientRspackAdditionalArgs;
|
|
82
|
+
/** @deprecated используйте rspackClientDev */
|
|
83
|
+
webpackClientDev: ClientRspackAdditionalArgs;
|
|
84
|
+
/** @deprecated используйте rspackProd */
|
|
85
|
+
webpackProd: ClientRspackAdditionalArgs;
|
|
86
|
+
/** @deprecated используйте rspackClientProd */
|
|
87
|
+
webpackClientProd: ClientRspackAdditionalArgs;
|
|
88
|
+
/** @deprecated используйте rspackServer */
|
|
89
|
+
webpackServer: ServerRspackAdditionalArgs;
|
|
90
|
+
/** @deprecated используйте rspackServerDev */
|
|
91
|
+
webpackServerDev: ServerRspackAdditionalArgs;
|
|
92
|
+
/** @deprecated используйте rspackServerProd */
|
|
93
|
+
webpackServerProd: ServerRspackAdditionalArgs;
|
|
64
94
|
};
|
|
65
|
-
type OverrideFunction<K extends keyof Overrides
|
|
95
|
+
type OverrideFunction<K extends keyof Overrides> = (config: Overrides[K], appConfig: AppContextWithConfigs, additionalArgs: K extends keyof OverridesAdditionalArgs ? OverridesAdditionalArgs[K] : undefined) => Overrides[K];
|
|
66
96
|
export type OverrideFile = {
|
|
67
97
|
[K in keyof Overrides]?: OverrideFunction<K>;
|
|
68
|
-
}
|
|
98
|
+
} & Partial<Record<DeprecatedOverrideKey, OverrideFunction<'rspack'>>>;
|
|
69
99
|
/**
|
|
70
100
|
*
|
|
71
101
|
* @param {String|String[]} overridesKey Ключи оверрайда
|
|
@@ -2,6 +2,40 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.applyOverrides = applyOverrides;
|
|
4
4
|
const app_configs_1 = require("../app-configs");
|
|
5
|
+
// Маппинг устаревших webpack-ключей оверрайдов на актуальные ключи для rspack
|
|
6
|
+
// Поддержка webpack-ключей будет скоро удалена.
|
|
7
|
+
const DEPRECATED_OVERRIDE_KEYS = {
|
|
8
|
+
webpack: 'rspack',
|
|
9
|
+
webpackClient: 'rspackClient',
|
|
10
|
+
webpackDev: 'rspackDev',
|
|
11
|
+
webpackClientDev: 'rspackClientDev',
|
|
12
|
+
webpackServer: 'rspackServer',
|
|
13
|
+
webpackServerDev: 'rspackServerDev',
|
|
14
|
+
webpackProd: 'rspackProd',
|
|
15
|
+
webpackClientProd: 'rspackClientProd',
|
|
16
|
+
webpackServerProd: 'rspackServerProd',
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Переносит устаревшие webpack-ключи оверрайдов на актуальные rspack-ключи и
|
|
20
|
+
* предупреждает о необходимости миграции. Если заданы оба ключа — приоритет у
|
|
21
|
+
* нового, устаревший игнорируется.
|
|
22
|
+
*/
|
|
23
|
+
function normalizeDeprecatedOverrideKeys(override) {
|
|
24
|
+
const result = Object.assign({}, override);
|
|
25
|
+
Object.keys(DEPRECATED_OVERRIDE_KEYS).forEach((deprecatedKey) => {
|
|
26
|
+
if (!Object.prototype.hasOwnProperty.call(result, deprecatedKey)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const newKey = DEPRECATED_OVERRIDE_KEYS[deprecatedKey];
|
|
30
|
+
console.warn(`[arui-scripts] Ключ оверрайда "${deprecatedKey}" устарел, используйте "${newKey}". ` +
|
|
31
|
+
`Поддержка "${deprecatedKey}" будет скоре удалена.`);
|
|
32
|
+
if (!Object.prototype.hasOwnProperty.call(result, newKey)) {
|
|
33
|
+
result[newKey] = result[deprecatedKey];
|
|
34
|
+
}
|
|
35
|
+
delete result[deprecatedKey];
|
|
36
|
+
});
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
5
39
|
let overrides = [];
|
|
6
40
|
overrides = app_configs_1.configs.overridesPath.map((path) => {
|
|
7
41
|
try {
|
|
@@ -10,9 +44,9 @@ overrides = app_configs_1.configs.overridesPath.map((path) => {
|
|
|
10
44
|
// eslint-disable-next-line no-underscore-dangle
|
|
11
45
|
if (requireResult.__esModule) {
|
|
12
46
|
// ts-node импортирует esModules, из них надо вытягивать default именно так
|
|
13
|
-
return requireResult.default;
|
|
47
|
+
return normalizeDeprecatedOverrideKeys(requireResult.default);
|
|
14
48
|
}
|
|
15
|
-
return requireResult;
|
|
49
|
+
return normalizeDeprecatedOverrideKeys(requireResult);
|
|
16
50
|
}
|
|
17
51
|
catch (e) {
|
|
18
52
|
console.error(`Unable to process override file "${path}"`);
|
|
@@ -40,6 +74,8 @@ function applyOverrides(overridesKey, config, args) {
|
|
|
40
74
|
throw new TypeError(`Override ${key} must be a function`);
|
|
41
75
|
}
|
|
42
76
|
// eslint-disable-next-line no-param-reassign
|
|
77
|
+
// @ts-expect-error Union type conflict between rspack and deprecated webpack keys - resolved at runtime
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any,no-param-reassign
|
|
43
79
|
config = overrideFn(config, app_configs_1.configs, args);
|
|
44
80
|
}
|
|
45
81
|
});
|
|
@@ -5,10 +5,10 @@ import type AssetsPlugin from 'assets-webpack-plugin';
|
|
|
5
5
|
import type CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin';
|
|
6
6
|
import type CompressionPlugin from 'compression-webpack-plugin';
|
|
7
7
|
import type MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
|
8
|
+
import { type RspackManifestPlugin } from 'rspack-manifest-plugin';
|
|
8
9
|
import { type RunScriptWebpackPlugin } from 'run-script-webpack-plugin';
|
|
9
10
|
import { type TsCheckerRspackPluginOptions } from 'ts-checker-rspack-plugin/lib/plugin-options';
|
|
10
11
|
import { type WebpackDeduplicationPlugin } from 'webpack-deduplication-plugin';
|
|
11
|
-
import { type WebpackManifestPlugin } from 'webpack-manifest-plugin';
|
|
12
12
|
type PluginsListClient = {
|
|
13
13
|
AssetsWebpackPlugin: {
|
|
14
14
|
options: AssetsPlugin.Options;
|
|
@@ -45,7 +45,7 @@ type PluginsListClient = {
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
WebpackManifestPlugin: {
|
|
48
|
-
options: ConstructorParameters<typeof
|
|
48
|
+
options: ConstructorParameters<typeof RspackManifestPlugin>[number];
|
|
49
49
|
};
|
|
50
50
|
CompressionPlugin: {
|
|
51
51
|
options: ConstructorParameters<typeof CompressionPlugin>[number];
|
package/build/index.d.ts
CHANGED
|
@@ -3,4 +3,4 @@ export type { AppConfigs, CompatModuleConfig, PackageSettings } from './configs/
|
|
|
3
3
|
export { prepareFilesForDocker } from './commands/util/docker-build';
|
|
4
4
|
export { getBuildParamsFromArgs } from './commands/util/docker-build';
|
|
5
5
|
export { getDockerBuildCommand } from './commands/util/docker-build';
|
|
6
|
-
export { patchMainWebpackConfigForModules } from './configs/modules';
|
|
6
|
+
export { patchMainRspackConfigForModules, patchMainWebpackConfigForModules, } from './configs/modules';
|
package/build/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.patchMainWebpackConfigForModules = exports.getDockerBuildCommand = exports.getBuildParamsFromArgs = exports.prepareFilesForDocker = void 0;
|
|
3
|
+
exports.patchMainWebpackConfigForModules = exports.patchMainRspackConfigForModules = exports.getDockerBuildCommand = exports.getBuildParamsFromArgs = exports.prepareFilesForDocker = void 0;
|
|
4
4
|
var docker_build_1 = require("./commands/util/docker-build");
|
|
5
5
|
Object.defineProperty(exports, "prepareFilesForDocker", { enumerable: true, get: function () { return docker_build_1.prepareFilesForDocker; } });
|
|
6
6
|
var docker_build_2 = require("./commands/util/docker-build");
|
|
@@ -8,4 +8,5 @@ Object.defineProperty(exports, "getBuildParamsFromArgs", { enumerable: true, get
|
|
|
8
8
|
var docker_build_3 = require("./commands/util/docker-build");
|
|
9
9
|
Object.defineProperty(exports, "getDockerBuildCommand", { enumerable: true, get: function () { return docker_build_3.getDockerBuildCommand; } });
|
|
10
10
|
var modules_1 = require("./configs/modules");
|
|
11
|
+
Object.defineProperty(exports, "patchMainRspackConfigForModules", { enumerable: true, get: function () { return modules_1.patchMainRspackConfigForModules; } });
|
|
11
12
|
Object.defineProperty(exports, "patchMainWebpackConfigForModules", { enumerable: true, get: function () { return modules_1.patchMainWebpackConfigForModules; } });
|
package/docs/cli.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# CLI arui-scripts
|
|
2
|
+
|
|
3
|
+
`arui-scripts` предоставляет CLI для сборки, запуска и тестирования react-приложений.
|
|
4
|
+
После установки пакета команды доступны через `arui-scripts <команда>`
|
|
5
|
+
|
|
6
|
+
Для генерации нового проекта используйте отдельный пакет
|
|
7
|
+
[`create-arui-scripts-app`](../../create-arui-scripts-app/README.md):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx create-arui-scripts-app my-app
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Глобальные флаги
|
|
14
|
+
|
|
15
|
+
- `arui-scripts --help` — список всех команд с описаниями.
|
|
16
|
+
- `arui-scripts --version` (`-v`) - версия пакета.
|
|
17
|
+
- `arui-scripts <команда> --help` - справка по конкретной команде.
|
|
18
|
+
|
|
19
|
+
## Команды
|
|
20
|
+
|
|
21
|
+
Полный список и описание — в [docs/commands.md](commands.md):
|
|
22
|
+
`start`, `start:prod`, `build`, `docker-build`, `docker-build:compiled`, `test`, `test:vitest`,
|
|
23
|
+
`archive-build`, `bundle-analyze`, `ensure-yarn`, `changelog`.
|
package/docs/commands.md
CHANGED
|
@@ -1,33 +1,45 @@
|
|
|
1
|
-
Доступные команды
|
|
1
|
+
# Доступные команды
|
|
2
|
+
|
|
2
3
|
===
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
CLI `arui-scripts` поддерживает глобальные флаги:
|
|
6
|
+
|
|
7
|
+
- `arui-scripts --help` - список всех команд с описаниями.
|
|
8
|
+
- `arui-scripts --version` (`-v`) - версия пакета.
|
|
9
|
+
- `arui-scripts <command> --help` - справка по конкретной команде.
|
|
10
|
+
|
|
11
|
+
## start
|
|
12
|
+
|
|
5
13
|
Запускает dev-сервер для клиентского кода и серверный код в watch-режиме.
|
|
6
14
|
|
|
7
15
|
**Как запустить?**
|
|
16
|
+
|
|
8
17
|
```bash
|
|
9
18
|
arui-scripts start
|
|
10
19
|
```
|
|
11
20
|
|
|
12
|
-
|
|
21
|
+
## start:prod
|
|
22
|
+
|
|
13
23
|
Запускает dev-сервер для клиентского кода и серверный код в watch-режиме. При этом использует production-конфигурацию для rspack.
|
|
14
24
|
Может быть полезна для сбора метрик производительности.
|
|
15
25
|
|
|
16
26
|
**Как запустить?**
|
|
27
|
+
|
|
17
28
|
```bash
|
|
18
29
|
arui-scripts start:prod
|
|
19
30
|
```
|
|
20
31
|
|
|
21
|
-
|
|
32
|
+
## build
|
|
33
|
+
|
|
22
34
|
Собирает клиентский и серверный код в production-режиме.
|
|
23
35
|
|
|
24
36
|
**Как запустить?**
|
|
37
|
+
|
|
25
38
|
```bash
|
|
26
39
|
arui-scripts build
|
|
27
40
|
```
|
|
28
41
|
|
|
29
|
-
|
|
30
|
-
Команда `arui-scripts test` внутри запускает jest с дополнительной конфигурацией.
|
|
42
|
+
## test
|
|
31
43
|
|
|
32
44
|
Конфигурация включает в себя:
|
|
33
45
|
- Использование `jest-snapshot-serializer-class-name-to-string` для правильной работы с `cn`
|
|
@@ -36,6 +48,8 @@ arui-scripts build
|
|
|
36
48
|
- Компиляцию .ts/.tsx файлов используя tsc
|
|
37
49
|
- Замену импортов остальных типов файлов на импорт строк с названием файла
|
|
38
50
|
|
|
51
|
+
Команда `arui-scripts test` внутри запускает jest с дополнительной конфигурацией.
|
|
52
|
+
|
|
39
53
|
По умолчанию под маску для поиска тестов попадают все файлы `*test*.(js|jsx|ts|tsx)`, `*spec*.((js|jsx|ts|tsx))`, `*/__test__/*.(js|jsx|ts|tsx)`.
|
|
40
54
|
|
|
41
55
|
Вы можете переопределять любые настройки jest в `package.json`, [документация](https://facebook.github.io/jest/docs/en/configuration.html).
|
|
@@ -53,11 +67,13 @@ _package.json_
|
|
|
53
67
|
```
|
|
54
68
|
|
|
55
69
|
**Как запустить?**
|
|
70
|
+
|
|
56
71
|
```bash
|
|
57
72
|
arui-scripts test
|
|
58
73
|
```
|
|
59
74
|
|
|
60
|
-
|
|
75
|
+
## test:vitest
|
|
76
|
+
|
|
61
77
|
Команда `arui-scripts test:vitest` запускает unit тесты через [Vitest](https://vitest.dev/).
|
|
62
78
|
|
|
63
79
|
Если в корне проекта есть `vitest.config.ts` (или `.js`, `.mjs`, `.cjs`), то используется он.
|
|
@@ -91,10 +107,12 @@ export default mergeConfig(aruiConfig, defineConfig({
|
|
|
91
107
|
arui-scripts test:vitest
|
|
92
108
|
```
|
|
93
109
|
|
|
94
|
-
|
|
110
|
+
## docker-build
|
|
111
|
+
|
|
95
112
|
Собирает клиентский и серверный код в production-режиме, создает docker-образ и пушит его в docker-репозиторий.
|
|
96
113
|
|
|
97
114
|
**Как запустить?**
|
|
115
|
+
|
|
98
116
|
```bash
|
|
99
117
|
arui-scripts docker-build
|
|
100
118
|
```
|
|
@@ -115,7 +133,7 @@ yarn будет использоваться когда в рутовой пап
|
|
|
115
133
|
docker run -p 8080:8080 container-name:version ./start.sh
|
|
116
134
|
```
|
|
117
135
|
|
|
118
|
-
|
|
136
|
+
## docker-build:compiled
|
|
119
137
|
|
|
120
138
|
Команда `arui-scripts docker-build:compiled` во многом аналогична `docker-build`, но вместо сборки проекта использует уже скомпилированный в папку `.build` код.
|
|
121
139
|
При этом в контейнер будут устанавливаться только production зависимости.
|
|
@@ -130,11 +148,12 @@ Dockerfile при этом будет сгенерирован автомати
|
|
|
130
148
|
Локальный `Dockerfile` в корне проекта в данном случае полностью игнорируется.
|
|
131
149
|
|
|
132
150
|
**Как запустить?**
|
|
151
|
+
|
|
133
152
|
```bash
|
|
134
153
|
arui-scripts docker-build:compiled
|
|
135
154
|
```
|
|
136
155
|
|
|
137
|
-
|
|
156
|
+
## archive-build
|
|
138
157
|
|
|
139
158
|
Собирает архив с production сборкой.
|
|
140
159
|
|
|
@@ -147,11 +166,12 @@ yarn будет использоваться когда в рутовой пап
|
|
|
147
166
|
Итоговый архив будет содержать в себе `.build`, `node_modules`, `package.json` и `config` папки вашего проекта.
|
|
148
167
|
|
|
149
168
|
**Как запустить?**
|
|
169
|
+
|
|
150
170
|
```bash
|
|
151
171
|
arui-scripts archive-build
|
|
152
172
|
```
|
|
153
173
|
|
|
154
|
-
|
|
174
|
+
## bundle-analyze
|
|
155
175
|
|
|
156
176
|
Запускает [webpack-bundle-analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer) и [rsdoctor](https://rsdoctor.dev/) для анализа бандла и сборки.
|
|
157
177
|
Так же при запуске будет генерироваться [stats-файл](https://webpack.js.org/api/stats/), который можно использовать в
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "arui-scripts",
|
|
3
|
-
"version": "23.0
|
|
3
|
+
"version": "23.2.0",
|
|
4
4
|
"main": "./build/index.js",
|
|
5
5
|
"typings": "./build/index.d.ts",
|
|
6
6
|
"exports": {
|
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
"brotli-dict": "^1.1.4",
|
|
64
64
|
"case-sensitive-paths-webpack-plugin": "2.4.0",
|
|
65
65
|
"chalk": "^2.4.2",
|
|
66
|
+
"commander": "^12",
|
|
66
67
|
"compression-webpack-plugin": "9.2.0",
|
|
67
68
|
"core-js": "3.32.0",
|
|
68
69
|
"css-loader": "6.8.1",
|
|
@@ -83,7 +84,6 @@
|
|
|
83
84
|
"mini-css-extract-plugin": "2.7.6",
|
|
84
85
|
"mini-svg-data-uri": "^1.4.4",
|
|
85
86
|
"null-loader": "0.1.1",
|
|
86
|
-
"pnp-webpack-plugin": "1.7.0",
|
|
87
87
|
"postcss": "^8.5.10",
|
|
88
88
|
"postcss-calc": "^9.0.0",
|
|
89
89
|
"postcss-color-function": "^4.0.0",
|
|
@@ -126,7 +126,6 @@
|
|
|
126
126
|
"vitest": "^4.1.5",
|
|
127
127
|
"webpack-bundle-analyzer": "4.10.2",
|
|
128
128
|
"webpack-deduplication-plugin": "^0.0.8",
|
|
129
|
-
"webpack-manifest-plugin": "3.2.0",
|
|
130
129
|
"webpack-node-externals": "3.0.0"
|
|
131
130
|
},
|
|
132
131
|
"devDependencies": {
|
|
@@ -141,12 +140,8 @@
|
|
|
141
140
|
"@types/semver": "^7.5.0",
|
|
142
141
|
"@types/serialize-javascript": "^5.0.4",
|
|
143
142
|
"@types/shelljs": "^0.8.12",
|
|
144
|
-
"@types/start-server-webpack-plugin": "2.2.2",
|
|
145
143
|
"@types/tar": "^4.0.5",
|
|
146
|
-
"@types/webpack": "^5.28.5",
|
|
147
144
|
"@types/webpack-bundle-analyzer": "4.7.0",
|
|
148
|
-
"@types/webpack-dev-server": "4.7.2",
|
|
149
|
-
"@types/webpack-manifest-plugin": "3.0.5",
|
|
150
145
|
"@types/webpack-node-externals": "^3.0.0",
|
|
151
146
|
"babel-plugin-transform-import-meta": "^2.3.3",
|
|
152
147
|
"type-fest": "2.19.0",
|
|
@@ -157,6 +152,7 @@
|
|
|
157
152
|
},
|
|
158
153
|
"scripts": {
|
|
159
154
|
"build": "sh bin/build.sh",
|
|
155
|
+
"cli": "node build/bin/index.js",
|
|
160
156
|
"test": "jest",
|
|
161
157
|
"test:vitest": "vitest",
|
|
162
158
|
"lint:scripts": "arui-presets-lint scripts",
|