arui-scripts 12.2.0 → 12.4.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/CHANGELOG.md +2 -2
- package/README.md +58 -7
- package/build/bin/index.d.ts +3 -0
- package/build/commands/archive-build/index.d.ts +1 -0
- package/build/commands/build/build-wrapper.d.ts +8 -0
- package/build/commands/build/client.d.ts +1 -0
- package/build/commands/build/index.d.ts +1 -0
- package/build/commands/build/server.d.ts +1 -0
- package/build/commands/bundle-analyze/index.d.ts +1 -0
- package/build/commands/docker-build/index.d.ts +1 -0
- package/build/commands/docker-build/index.js +10 -8
- package/build/commands/ensure-yarn/index.d.ts +0 -0
- package/build/commands/start/client.d.ts +1 -0
- package/build/commands/start/index.d.ts +1 -0
- package/build/commands/start/print-compiler-output.d.ts +1 -0
- package/build/commands/start/server.d.ts +1 -0
- package/build/commands/test/index.d.ts +1 -0
- package/build/commands/util/check-required-files.d.ts +2 -0
- package/build/commands/util/client-assets-sizes.d.ts +26 -0
- package/build/commands/util/exec.d.ts +2 -0
- package/build/commands/util/format-webpack-messages.d.ts +5 -0
- package/build/commands/util/make-tmp-dir.d.ts +6 -0
- package/build/configs/app-configs/available-package-settings.d.ts +8 -0
- package/build/configs/app-configs/available-package-settings.js +1 -0
- package/build/configs/app-configs/calculate-dependent-config.d.ts +11 -0
- package/build/configs/app-configs/get-defaults.d.ts +2 -0
- package/build/configs/app-configs/get-defaults.js +4 -2
- package/build/configs/app-configs/index.d.ts +4 -0
- package/build/configs/app-configs/index.js +3 -0
- package/build/configs/app-configs/types.d.ts +39 -0
- package/build/configs/app-configs/update-with-config-file.d.ts +2 -0
- package/build/configs/app-configs/update-with-config-file.js +25 -0
- package/build/configs/app-configs/update-with-env.d.ts +2 -0
- package/build/configs/app-configs/update-with-package.d.ts +2 -0
- package/build/configs/app-configs/update-with-presets.d.ts +2 -0
- package/build/configs/app-configs/update-with-presets.js +7 -3
- package/build/configs/app-configs/validate-settings-keys.d.ts +7 -0
- package/build/configs/babel-client.d.ts +2 -0
- package/build/configs/babel-server.d.ts +2 -0
- package/build/configs/dev-server.d.ts +3 -0
- package/build/configs/jest/babel-transform.d.ts +7 -0
- package/build/configs/jest/css-mock.d.ts +1 -0
- package/build/configs/jest/file-transform.d.ts +2 -0
- package/build/configs/jest/index.d.ts +19 -0
- package/build/configs/jest/setup.d.ts +1 -0
- package/build/configs/mq.d.ts +24 -0
- package/build/configs/postcss.config.d.ts +27 -0
- package/build/configs/postcss.d.ts +2 -0
- package/build/configs/stats-options.d.ts +3 -0
- package/build/configs/stats-options.js +0 -2
- package/build/configs/supporting-browsers.d.ts +2 -0
- package/build/configs/util/apply-overrides.d.ts +37 -0
- package/build/configs/util/apply-overrides.js +12 -4
- package/build/configs/util/check-node-version.d.ts +2 -0
- package/build/configs/util/get-entry.d.ts +7 -0
- package/build/configs/util/get-polyfills.d.ts +3 -0
- package/build/configs/util/install-sourcemap-support.d.ts +1 -0
- package/build/configs/util/node-assets-ignore.d.ts +0 -0
- package/build/configs/util/noop.d.ts +1 -0
- package/build/configs/util/register-ts-node.d.ts +0 -0
- package/build/configs/util/register-ts-node.js +15 -0
- package/build/configs/util/try-resolve.d.ts +1 -0
- package/build/configs/webpack.client.dev.d.ts +3 -0
- package/build/configs/webpack.client.prod.d.ts +3 -0
- package/build/configs/webpack.server.dev.d.ts +3 -0
- package/build/configs/webpack.server.prod.d.ts +3 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +2 -0
- package/build/plugins/reload-server-webpack-plugin.d.ts +9 -0
- package/build/templates/dockerfile.template.d.ts +2 -0
- package/build/templates/nginx.conf.template.d.ts +2 -0
- package/build/templates/start.template.d.ts +2 -0
- package/build/tsconfig-local.tsbuildinfo +239 -172
- package/package.json +3 -2
- package/release.config.js +2 -2
- package/tsconfig-local.json +4 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# [12.
|
|
1
|
+
# [12.4.0](https://git.moscow.alfaintra.net/ef/arui-scripts/compare/v12.3.0...v12.4.0) (2022-05-25)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Features
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* add removeDevDependenciesDuringDockerBuild setting ([51f016f](https://git.moscow.alfaintra.net/ef/arui-scripts/commit/51f016f3aad3e2e5e489659d0b26e6005cacdafe))
|
package/README.md
CHANGED
|
@@ -51,12 +51,14 @@ npm install arui-scripts --save-dev
|
|
|
51
51
|
---
|
|
52
52
|
|
|
53
53
|
Несмотря на то, что все работает из коробки, вы можете захотеть поменять некоторые настройки сборщиков.
|
|
54
|
-
Сделать это можно в `package.json`, определив там свойство `aruiScripts
|
|
54
|
+
Сделать это можно в `package.json`, определив там свойство `aruiScripts`, или положить в корень проекта файл
|
|
55
|
+
`arui-scripts.config.(js|ts)`.
|
|
55
56
|
|
|
56
57
|
Доступные настройки:
|
|
57
58
|
|
|
58
59
|
- `dockerRegistry` - адрес используемого docker registry, по умолчанию `''`, то есть используется публичный registry
|
|
59
60
|
- `baseDockerImage` - имя базового образа, используемого для построения docker образа. По умолчанию `alfabankui/arui-scripts:latest`.
|
|
61
|
+
- `runFromNonRootUser` - сборка образа под пользователем `nginx`. Нужна для совместимости с k8s, т.к там зачастую запрещен запуск контейнера из под `root` По умолчанию `false`.
|
|
60
62
|
- `serverEntry` - точка входа для исходников сервера, по умолчанию `src/server/index`.
|
|
61
63
|
- `serverOutput` - имя файла для компиляции сервера, по умолчанию `server.js`.
|
|
62
64
|
- `clientPolyfillsEntry` - точка входа для полифилов. Будет подключаться до основной точки входа. По умолчанию подтягивает полифилы из `arui-feather`, если он установлен.
|
|
@@ -72,6 +74,7 @@ npm install arui-scripts --save-dev
|
|
|
72
74
|
- `useTscLoader` - использовать ts-loader вместо babel-loader для обработки ts файлов. У babel-loader есть [ряд ограничений](https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/). По умолчанию `false`.
|
|
73
75
|
- `componentsTheme` - путь к css файлу с темой для [core-components](https://alfa-laboratory.github.io/core-components). Используется для настройки [postcss-custom-properties](https://github.com/postcss/postcss-custom-properties#importfrom).
|
|
74
76
|
- `keepCssVars` - отключает `postcss-custom-properties`, css переменные будут оставаться в бандле.
|
|
77
|
+
- `removeDevDependenciesDuringDockerBuild` - отключает удаление devDependencies из node_modules при сборке докер образа. Используется когда вам не нужно удалять devDependencies, т.к. в своём Dockerfile вы не переносите node_modules в докер-контейнер
|
|
75
78
|
|
|
76
79
|
В целях отладки все эти настройки можно переопределить не изменяя package.json
|
|
77
80
|
Просто передайте необходимые настройки в environment переменной ARUI_SCRIPTS_CONFIG
|
|
@@ -82,6 +85,24 @@ ARUI_SCRIPTS_CONFIG="{\"serverPort\":3333}" yarn start
|
|
|
82
85
|
Так же, читаются настройки jest (см. [документацию](https://facebook.github.io/jest/docs/en/configuration.html))
|
|
83
86
|
и `proxy` (см. [документацию](https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#proxying-api-requests-in-development)).
|
|
84
87
|
|
|
88
|
+
Использование отдельных конфигурационных файлов
|
|
89
|
+
---
|
|
90
|
+
Для сложных конфигураций может быть удобно вынести их из package.json в отдельный файл. Конфигурация будет загружаться из файла
|
|
91
|
+
`arui-scripts.config.js` или `arui-scripts.config.ts`
|
|
92
|
+
Пример `arui-scripts.config.ts`:
|
|
93
|
+
```ts
|
|
94
|
+
import { PackageSettings } from 'arui-scripts';
|
|
95
|
+
|
|
96
|
+
const settings: PackageSettings = {
|
|
97
|
+
clientEntry: {
|
|
98
|
+
mobile: './src/mobile',
|
|
99
|
+
desktop: './src/desktop',
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export default settings;
|
|
104
|
+
```
|
|
105
|
+
|
|
85
106
|
Несколько entry point
|
|
86
107
|
---
|
|
87
108
|
Ключи `serverEntry` и `clientEntry` принимают не только строки, но и любые возможные в [webpack варианты](https://webpack.js.org/concepts/entry-points/).
|
|
@@ -443,7 +464,7 @@ arui-scripts bundle-analyze
|
|
|
443
464
|
Если вам не хватает гибкости при использовании `arui-scripts`, например вы хотите добавить свой плагин для вебпака -
|
|
444
465
|
вы можете воспользоваться механизмом `overrides`.
|
|
445
466
|
|
|
446
|
-
Для этого вам необходимо создать в корне вашего проекта файл `arui-scripts.overrides.js`, из которого вы сможете управлять
|
|
467
|
+
Для этого вам необходимо создать в корне вашего проекта файл `arui-scripts.overrides.js` или `arui-scripts.overrides.ts`, из которого вы сможете управлять
|
|
447
468
|
конфигурацией почти всех инструментов, используемых в `arui-scripts`.
|
|
448
469
|
|
|
449
470
|
Принцип работы тут следующий. Для всех конфигураций определен набор ключей, которые они будут искать в `arui-scripts.overrides.js`,
|
|
@@ -451,7 +472,7 @@ arui-scripts bundle-analyze
|
|
|
451
472
|
существующая конфигурация и полный конфиг приложения (см [AppConfig](./src/configs/app-configs/types.ts)).
|
|
452
473
|
Возвращать такая функция должна так же конфигурацию.
|
|
453
474
|
|
|
454
|
-
|
|
475
|
+
Пример `arui-scripts.overrides.js`:
|
|
455
476
|
```javascript
|
|
456
477
|
const path = require('path');
|
|
457
478
|
module.exports = {
|
|
@@ -464,6 +485,25 @@ module.exports = {
|
|
|
464
485
|
};
|
|
465
486
|
```
|
|
466
487
|
|
|
488
|
+
Пример `arui-scripts.overrides.ts`:
|
|
489
|
+
```ts
|
|
490
|
+
import type { OverrideFile } from 'arui-scripts';
|
|
491
|
+
import path from 'path';
|
|
492
|
+
|
|
493
|
+
const overrides: OverrideFile = {
|
|
494
|
+
webpack: (config, applicationConfig) => {
|
|
495
|
+
config.resolve.alias = {
|
|
496
|
+
components: path.resolve(__dirname, 'src/components')
|
|
497
|
+
};
|
|
498
|
+
return config;
|
|
499
|
+
}
|
|
500
|
+
};
|
|
501
|
+
|
|
502
|
+
export default overrides;
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
**В случае, если у вас на проекте лежит и ts, и js файл с overrides, использоваться будет js версия.**
|
|
506
|
+
|
|
467
507
|
С помощью этой конфигурации ко всем настройкам вебпака будет добавлен `alias` *components*.
|
|
468
508
|
|
|
469
509
|
На данный момент можно переопределять следующие конфигурации:
|
|
@@ -532,10 +572,10 @@ module.exports = {
|
|
|
532
572
|
от папки, содержащей package.json. Так что это может быть как папка в проекте, так и пакет из node_modules).
|
|
533
573
|
|
|
534
574
|
Сам пакет с пресетами может содержать два файла:
|
|
535
|
-
- `arui-scirpts.config.js`
|
|
536
|
-
- `arui-scripts.overrides.js`
|
|
575
|
+
- `arui-scirpts.config.js` (или `arui-scripts.config.ts`)
|
|
576
|
+
- `arui-scripts.overrides.js` (или `arui-scirpts.overrides.ts`)
|
|
537
577
|
|
|
538
|
-
### arui-scripts.config
|
|
578
|
+
### arui-scripts.config (js | ts)
|
|
539
579
|
С помощью этого файла можно задать любые ключи [конфигурации](#настройки).
|
|
540
580
|
```js
|
|
541
581
|
module.exports = {
|
|
@@ -543,6 +583,17 @@ module.exports = {
|
|
|
543
583
|
};
|
|
544
584
|
```
|
|
545
585
|
|
|
586
|
+
Или в виде ts:
|
|
587
|
+
```ts
|
|
588
|
+
import type { PackageSettings } from 'arui-scripts';
|
|
589
|
+
|
|
590
|
+
const settings: PackageSettings = {
|
|
591
|
+
baseDockerImage: 'my-company-artifactory.com/arui-scripts-base:11.2'
|
|
592
|
+
};
|
|
593
|
+
|
|
594
|
+
export default settings;
|
|
595
|
+
```
|
|
596
|
+
|
|
546
597
|
На проекте конфиурация будет загружаться в следующем порядке:
|
|
547
598
|
1. базовые настройки из arui-scripts
|
|
548
599
|
2. настройки из presets
|
|
@@ -555,7 +606,7 @@ module.exports = {
|
|
|
555
606
|
они будут вычисляться относительно корня проекта, а не вашей конфигурации.
|
|
556
607
|
Вы можете использовать абсолютные пути при необходимости задать путь до файла внутри пакета с пресетами.
|
|
557
608
|
|
|
558
|
-
### arui-scripts.overrides
|
|
609
|
+
### arui-scripts.overrides (js | ts)
|
|
559
610
|
С помощью этого файла можно задать базовые оверрайды проекта, аналогично [заданию оверрайдов на проекте](#тонкая-настройка).
|
|
560
611
|
```js
|
|
561
612
|
module.exports = {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import webpack from 'webpack';
|
|
2
|
+
declare type BuildResult = {
|
|
3
|
+
stats: webpack.Stats;
|
|
4
|
+
warnings: string[];
|
|
5
|
+
previousFileSizes: unknown;
|
|
6
|
+
};
|
|
7
|
+
declare function build(config: webpack.Configuration, previousFileSizes?: unknown): Promise<BuildResult>;
|
|
8
|
+
export default build;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -70,15 +70,17 @@ const imageFullName = `${dockerRegistry ? `${dockerRegistry}/` : ''}${imageName}
|
|
|
70
70
|
// run build script
|
|
71
71
|
yield exec_1.default('npm run build');
|
|
72
72
|
console.timeEnd('Build application time');
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
if (app_configs_1.default.removeDevDependenciesDuringDockerBuild) {
|
|
74
|
+
console.time('Remove dev dependencies time');
|
|
75
|
+
// if yarn is available prune dev dependencies with yarn, otherwise use npm
|
|
76
|
+
if (app_configs_1.default.useYarn && shelljs_1.default.which('yarn')) {
|
|
77
|
+
yield exec_1.default('yarn install --production --ignore-optional --frozen-lockfile --ignore-scripts --prefer-offline');
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
yield exec_1.default('npm prune --production');
|
|
81
|
+
}
|
|
82
|
+
console.timeEnd('Remove dev dependencies time');
|
|
77
83
|
}
|
|
78
|
-
else {
|
|
79
|
-
yield exec_1.default('npm prune --production');
|
|
80
|
-
}
|
|
81
|
-
console.timeEnd('Remove dev dependencies time');
|
|
82
84
|
console.time('Build docker image time');
|
|
83
85
|
yield exec_1.default(`docker build -f "./${tempDirName}/Dockerfile" \\
|
|
84
86
|
--build-arg START_SH_LOCATION="./${tempDirName}/start.sh" \\
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function printCompilerOutput(compilerName: string, stats: any): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Stats } from 'webpack';
|
|
2
|
+
declare type AssetSize = {
|
|
3
|
+
name: string;
|
|
4
|
+
fullName: string;
|
|
5
|
+
gzipSize: number;
|
|
6
|
+
brotliSize: number;
|
|
7
|
+
size: number;
|
|
8
|
+
sizeLabel: string;
|
|
9
|
+
gzipLabel: string;
|
|
10
|
+
brotliLabel: string;
|
|
11
|
+
};
|
|
12
|
+
declare type TotalSizes = {
|
|
13
|
+
size: number;
|
|
14
|
+
sizeLabel: string;
|
|
15
|
+
gzipSize: number;
|
|
16
|
+
gzipLabel: string;
|
|
17
|
+
brotliSize: number;
|
|
18
|
+
brotliLabel: string;
|
|
19
|
+
};
|
|
20
|
+
declare type ClientAssetsSizes = {
|
|
21
|
+
totalSizes: TotalSizes;
|
|
22
|
+
assets: AssetSize[];
|
|
23
|
+
};
|
|
24
|
+
export declare function calculateAssetsSizes(webpackStats: Stats, rootDir?: string): ClientAssetsSizes;
|
|
25
|
+
export declare function printAssetsSizes(sizes: ClientAssetsSizes): void;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AppConfigs } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Эти ключи из конфига будут обновляться из package.json при их наличии
|
|
4
|
+
*/
|
|
5
|
+
export declare const availablePackageSettings: readonly ["dockerRegistry", "baseDockerImage", "serverEntry", "buildPath", "assetsPath", "additionalBuildPath", "nginxRootPath", "runFromNonRootUser", "archiveName", "serverOutput", "clientPolyfillsEntry", "clientEntry", "keepPropTypes", "useTscLoader", "useServerHMR", "clientServerPort", "serverPort", "debug", "statsOutputFilename", "componentsTheme", "keepCssVars", "removeDevDependenciesDuringDockerBuild"];
|
|
6
|
+
declare type ArrayElementType<ArrayType extends ReadonlyArray<unknown>> = ArrayType[number];
|
|
7
|
+
export declare type PackageSettings = Partial<Pick<AppConfigs, ArrayElementType<typeof availablePackageSettings>>>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { AppConfigs } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Обновление ключей конфига, зависящих от других. Это нужно делать в самый последний момент
|
|
4
|
+
*/
|
|
5
|
+
export declare function calculateDependentConfig(config: AppConfigs): AppConfigs & {
|
|
6
|
+
publicPath: string;
|
|
7
|
+
serverOutputPath: string;
|
|
8
|
+
clientOutputPath: string;
|
|
9
|
+
clientPolyfillsEntry: string[];
|
|
10
|
+
statsOutputPath: string;
|
|
11
|
+
};
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getDefaults = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const try_resolve_1 = require("../util/try-resolve");
|
|
9
10
|
function getDefaults() {
|
|
10
11
|
const CWD = process.cwd();
|
|
11
12
|
const appPackage = JSON.parse(fs_1.default.readFileSync(path_1.default.join(CWD, 'package.json'), 'utf8'));
|
|
@@ -16,7 +17,7 @@ function getDefaults() {
|
|
|
16
17
|
const absoluteNodeModulesPath = path_1.default.resolve(CWD, 'node_modules');
|
|
17
18
|
const projectTsConfigPath = path_1.default.join(CWD, 'tsconfig.json');
|
|
18
19
|
const yarnLockFilePath = path_1.default.join(CWD, 'yarn.lock');
|
|
19
|
-
const overridesPath = path_1.default.join(CWD, 'arui-scripts.overrides
|
|
20
|
+
const overridesPath = try_resolve_1.tryResolve(path_1.default.join(CWD, 'arui-scripts.overrides'));
|
|
20
21
|
const nginxConfFilePath = path_1.default.join(CWD, 'nginx.conf');
|
|
21
22
|
const dockerfileFilePath = path_1.default.join(CWD, 'Dockerfile');
|
|
22
23
|
return {
|
|
@@ -52,8 +53,9 @@ function getDefaults() {
|
|
|
52
53
|
clientServerPort: 8080,
|
|
53
54
|
serverPort: 3000,
|
|
54
55
|
debug: false,
|
|
55
|
-
overridesPath: [overridesPath],
|
|
56
|
+
overridesPath: overridesPath ? [overridesPath] : [],
|
|
56
57
|
statsOutputFilename: 'stats.json',
|
|
58
|
+
removeDevDependenciesDuringDockerBuild: true,
|
|
57
59
|
componentsTheme: undefined,
|
|
58
60
|
keepCssVars: false,
|
|
59
61
|
// Эти пути зависят от других настроек, которые могут быть переопределены пользователем
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("../util/register-ts-node");
|
|
3
4
|
const get_defaults_1 = require("./get-defaults");
|
|
4
5
|
const update_with_env_1 = require("./update-with-env");
|
|
5
6
|
const update_with_package_1 = require("./update-with-package");
|
|
6
7
|
const update_with_presets_1 = require("./update-with-presets");
|
|
7
8
|
const calculate_dependent_config_1 = require("./calculate-dependent-config");
|
|
9
|
+
const update_with_config_file_1 = require("./update-with-config-file");
|
|
8
10
|
let config = get_defaults_1.getDefaults();
|
|
9
11
|
config = update_with_presets_1.updateWithPresets(config);
|
|
10
12
|
config = update_with_package_1.updateWithPackage(config);
|
|
13
|
+
config = update_with_config_file_1.updateWithConfigFile(config);
|
|
11
14
|
config = update_with_env_1.updateWithEnv(config);
|
|
12
15
|
config = calculate_dependent_config_1.calculateDependentConfig(config);
|
|
13
16
|
exports.default = config;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export declare type AppConfigs = {
|
|
2
|
+
appPackage: any;
|
|
3
|
+
name: string;
|
|
4
|
+
version: string;
|
|
5
|
+
dockerRegistry: string;
|
|
6
|
+
baseDockerImage: string;
|
|
7
|
+
cwd: string;
|
|
8
|
+
appSrc: string;
|
|
9
|
+
appNodeModules: string;
|
|
10
|
+
buildPath: string;
|
|
11
|
+
assetsPath: string;
|
|
12
|
+
additionalBuildPath: string[];
|
|
13
|
+
nginxRootPath: string;
|
|
14
|
+
runFromNonRootUser: boolean;
|
|
15
|
+
archiveName: string;
|
|
16
|
+
serverEntry: string | string[] | Record<string, string | string[]>;
|
|
17
|
+
serverOutput: string;
|
|
18
|
+
clientPolyfillsEntry: null | string | string[];
|
|
19
|
+
clientEntry: string;
|
|
20
|
+
keepPropTypes: boolean;
|
|
21
|
+
tsconfig: string | null;
|
|
22
|
+
localNginxConf: string | null;
|
|
23
|
+
localDockerfile: string | null;
|
|
24
|
+
useTscLoader: boolean;
|
|
25
|
+
useServerHMR: boolean;
|
|
26
|
+
useYarn: boolean;
|
|
27
|
+
clientServerPort: number;
|
|
28
|
+
serverPort: number;
|
|
29
|
+
debug: boolean;
|
|
30
|
+
overridesPath: string[];
|
|
31
|
+
statsOutputFilename: string;
|
|
32
|
+
removeDevDependenciesDuringDockerBuild: boolean;
|
|
33
|
+
componentsTheme: string | undefined;
|
|
34
|
+
keepCssVars: boolean;
|
|
35
|
+
publicPath: string;
|
|
36
|
+
serverOutputPath: string;
|
|
37
|
+
clientOutputPath: string;
|
|
38
|
+
statsOutputPath: string;
|
|
39
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
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.updateWithConfigFile = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const lodash_merge_1 = __importDefault(require("lodash.merge"));
|
|
9
|
+
const try_resolve_1 = require("../util/try-resolve");
|
|
10
|
+
const validate_settings_keys_1 = __importDefault(require("./validate-settings-keys"));
|
|
11
|
+
const available_package_settings_1 = require("./available-package-settings");
|
|
12
|
+
function updateWithConfigFile(config) {
|
|
13
|
+
const appConfigPath = try_resolve_1.tryResolve(path_1.default.join(config.cwd, '/arui-scripts.config'));
|
|
14
|
+
if (appConfigPath) {
|
|
15
|
+
let appSettings = require(appConfigPath);
|
|
16
|
+
if (appSettings.__esModule) {
|
|
17
|
+
// ts-node импортирует esModules, из них надо вытягивать default именно так
|
|
18
|
+
appSettings = appSettings.default;
|
|
19
|
+
}
|
|
20
|
+
validate_settings_keys_1.default(available_package_settings_1.availablePackageSettings, appSettings);
|
|
21
|
+
config = lodash_merge_1.default(config, appSettings);
|
|
22
|
+
}
|
|
23
|
+
return config;
|
|
24
|
+
}
|
|
25
|
+
exports.updateWithConfigFile = updateWithConfigFile;
|
|
@@ -13,10 +13,14 @@ function updateWithPresets(config) {
|
|
|
13
13
|
if (!packageSettings.presets) {
|
|
14
14
|
return config;
|
|
15
15
|
}
|
|
16
|
-
const presetsConfigPath = try_resolve_1.tryResolve(`${packageSettings.presets}/arui-scripts.config
|
|
17
|
-
const presetsOverridesPath = try_resolve_1.tryResolve(`${packageSettings.presets}/arui-scripts.overrides
|
|
16
|
+
const presetsConfigPath = try_resolve_1.tryResolve(`${packageSettings.presets}/arui-scripts.config`, { paths: [config.cwd] });
|
|
17
|
+
const presetsOverridesPath = try_resolve_1.tryResolve(`${packageSettings.presets}/arui-scripts.overrides`, { paths: [config.cwd] });
|
|
18
18
|
if (presetsConfigPath) {
|
|
19
|
-
|
|
19
|
+
let presetsSettings = require(presetsConfigPath);
|
|
20
|
+
if (presetsSettings.__esModule) {
|
|
21
|
+
// ts-node импортирует esModules, из них надо вытягивать default именно так
|
|
22
|
+
presetsSettings = presetsSettings.default;
|
|
23
|
+
}
|
|
20
24
|
validate_settings_keys_1.default(available_package_settings_1.availablePackageSettings, presetsSettings);
|
|
21
25
|
config = lodash_merge_1.default(config, presetsSettings);
|
|
22
26
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Функция проверяет что все ключи объекта settingsObject есть в массиве availableKeys
|
|
3
|
+
* @param {string[]} availableKeys Массив допустимых настроек
|
|
4
|
+
* @param settingsObject Объект с настройками
|
|
5
|
+
*/
|
|
6
|
+
declare function validateSettingsKeys(availableKeys: ReadonlyArray<string>, settingsObject: Record<string, unknown>): void;
|
|
7
|
+
export default validateSettingsKeys;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _exports: {
|
|
2
|
+
canInstrument?: boolean | undefined;
|
|
3
|
+
createTransformer?: ((options?: any) => import("@jest/transform").Transformer) | undefined;
|
|
4
|
+
getCacheKey?: ((fileData: string, filePath: string, configStr: string, options: import("@jest/transform").CacheKeyOptions) => string) | undefined;
|
|
5
|
+
process: (sourceText: string, sourcePath: string, config: import("@jest/types/build/Config").ProjectConfig, options?: import("@jest/transform").TransformOptions | undefined) => import("@jest/transform").TransformedSource;
|
|
6
|
+
};
|
|
7
|
+
export = _exports;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare const testRegex: string;
|
|
2
|
+
export declare const moduleFileExtensions: string[];
|
|
3
|
+
export declare const collectCoverageFrom: string[];
|
|
4
|
+
export declare const transform: {
|
|
5
|
+
'^.+\\.jsx?$': string;
|
|
6
|
+
'^.+\\.tsx?$': string;
|
|
7
|
+
'^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': string;
|
|
8
|
+
};
|
|
9
|
+
export declare const moduleNameMapper: {
|
|
10
|
+
'\\.css$': string;
|
|
11
|
+
};
|
|
12
|
+
export declare const setupFiles: string[];
|
|
13
|
+
export declare const snapshotSerializers: string[];
|
|
14
|
+
export declare const globals: {
|
|
15
|
+
'ts-jest': {
|
|
16
|
+
tsconfig: string | null;
|
|
17
|
+
babelConfig: any;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const customMedia: {
|
|
2
|
+
"--small": string;
|
|
3
|
+
"--small-only": string;
|
|
4
|
+
"--medium": string;
|
|
5
|
+
"--medium-only": string;
|
|
6
|
+
"--large": string;
|
|
7
|
+
"--large-only": string;
|
|
8
|
+
"--xlarge": string;
|
|
9
|
+
"--xlarge-only": string;
|
|
10
|
+
"--xxlarge": string;
|
|
11
|
+
"--xxlarge-only": string;
|
|
12
|
+
"--mobile-s": string;
|
|
13
|
+
"--mobile-m": string;
|
|
14
|
+
"--mobile-l": string;
|
|
15
|
+
"--mobile": string;
|
|
16
|
+
"--tablet-s": string;
|
|
17
|
+
"--tablet-m": string;
|
|
18
|
+
"--tablet": string;
|
|
19
|
+
"--desktop-s": string;
|
|
20
|
+
"--desktop-m": string;
|
|
21
|
+
"--desktop-l": string;
|
|
22
|
+
"--desktop-xl": string;
|
|
23
|
+
"--desktop": string;
|
|
24
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Функция для создания конфигурационного файла postcss
|
|
3
|
+
* @param {String[]} plugins список плагинов
|
|
4
|
+
* @param {Object} options коллекция конфигураций плагинов, где ключ - название плагина, а значение - аргумент для инициализации
|
|
5
|
+
* @returns {*}
|
|
6
|
+
*/
|
|
7
|
+
export declare function createPostcssConfig(plugins: string[], options: Record<string, unknown>): any[];
|
|
8
|
+
export declare const postcssPlugins: string[];
|
|
9
|
+
export declare const postcssPluginsOptions: {
|
|
10
|
+
'postcss-custom-properties'?: {
|
|
11
|
+
preserve: boolean;
|
|
12
|
+
importFrom: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
'postcss-import': {
|
|
15
|
+
path: string[];
|
|
16
|
+
plugins: any[];
|
|
17
|
+
};
|
|
18
|
+
'postcss-url': {
|
|
19
|
+
url: string;
|
|
20
|
+
};
|
|
21
|
+
'postcss-custom-media': {
|
|
22
|
+
importFrom: string;
|
|
23
|
+
};
|
|
24
|
+
'postcss-color-mod-function': {
|
|
25
|
+
unresolved: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
@@ -29,8 +29,6 @@ const statsOptions = apply_overrides_1.default('stats', {
|
|
|
29
29
|
hash: false,
|
|
30
30
|
// Add built modules information
|
|
31
31
|
modules: true,
|
|
32
|
-
// Set the maximum number of modules to be shown
|
|
33
|
-
maxModules: 0,
|
|
34
32
|
// Show dependencies and origin of warnings/errors (since webpack 2.5.0)
|
|
35
33
|
moduleTrace: true,
|
|
36
34
|
// Show performance hint when file size exceeds `performance.maxAssetSize`
|