arui-scripts 12.0.3 → 12.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/CHANGELOG.md +3 -3
- package/README.md +11 -1
- package/build/commands/bundle-analyze/index.js +6 -1
- package/build/configs/app-configs/available-package-settings.js +1 -0
- package/build/configs/app-configs/calculate-dependent-config.js +1 -0
- package/build/configs/app-configs/get-defaults.js +2 -0
- package/build/tsconfig-local.tsbuildinfo +177 -176
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# [12.2.0](https://github.com/alfa-laboratory/arui-scripts/compare/v12.1.0...v12.2.0) (2022-02-17)
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
###
|
|
4
|
+
### Features
|
|
5
5
|
|
|
6
|
-
* **webpack-
|
|
6
|
+
* **webpack-client:** add stats file generation ([f6301da](https://github.com/alfa-laboratory/arui-scripts/commit/f6301da5ebf6f7975a1b810c904cafd9c1d3f8f8))
|
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ npm install arui-scripts --save-dev
|
|
|
68
68
|
- `archiveName` - имя архива, который будет создан при использовании команды `archive-build`. По умолчанию `build.tar`.
|
|
69
69
|
- `keepPropTypes` - если `true`, пакеты с prop-types не будут удалены из production билда.
|
|
70
70
|
- `debug` - режим отладки, в котором не выполняются некоторые нежелательные операции и выводится больше сообщений об ошибках, по умолчанию `false`.
|
|
71
|
+
- `statsOutputFilename` - имя [stats-файла](https://webpack.js.org/api/stats/), которое будет использоваться в [bundle-analyze](#анализ-бандла) команде
|
|
71
72
|
- `useTscLoader` - использовать ts-loader вместо babel-loader для обработки ts файлов. У babel-loader есть [ряд ограничений](https://blogs.msdn.microsoft.com/typescript/2018/08/27/typescript-and-babel-7/). По умолчанию `false`.
|
|
72
73
|
- `componentsTheme` - путь к css файлу с темой для [core-components](https://alfa-laboratory.github.io/core-components). Используется для настройки [postcss-custom-properties](https://github.com/postcss/postcss-custom-properties#importfrom).
|
|
73
74
|
- `keepCssVars` - отключает `postcss-custom-properties`, css переменные будут оставаться в бандле.
|
|
@@ -426,7 +427,16 @@ require node.js на таких местах ломается. Поэтому н
|
|
|
426
427
|
воспользоваться механизмом `overrides`, описанным ниже.
|
|
427
428
|
По умолчанию же все не-js файлы из внешних модулей будут проигнорированы.
|
|
428
429
|
|
|
429
|
-
|
|
430
|
+
Анализ бандла
|
|
431
|
+
---
|
|
432
|
+
Для изучения итогового бандла приложения и просмотра его размеров и включенных файлов в arui-scripts есть команда
|
|
433
|
+
```
|
|
434
|
+
arui-scripts bundle-analyze
|
|
435
|
+
```
|
|
436
|
+
Она запускает [webpack-bundle-analyzer](https://www.npmjs.com/package/webpack-bundle-analyzer) для клиентского кода.
|
|
437
|
+
Так же при запуске будет генерироваться [stats-файл](https://webpack.js.org/api/stats/), который можно использовать в
|
|
438
|
+
[сторонних](http://webpack.github.io/analyse/) инструментах, например для понимания почему тот или иной модуль попал в бандл.
|
|
439
|
+
По умолчанию файл будет писаться в `.build/stats.json`.
|
|
430
440
|
|
|
431
441
|
Тонкая настройка
|
|
432
442
|
===
|
|
@@ -16,10 +16,15 @@ const webpack_1 = __importDefault(require("webpack"));
|
|
|
16
16
|
const webpack_bundle_analyzer_1 = require("webpack-bundle-analyzer");
|
|
17
17
|
const make_tmp_dir_1 = __importDefault(require("../util/make-tmp-dir"));
|
|
18
18
|
const webpack_client_prod_1 = __importDefault(require("../../configs/webpack.client.prod"));
|
|
19
|
+
const app_configs_1 = __importDefault(require("../../configs/app-configs"));
|
|
19
20
|
(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
21
|
var _a;
|
|
21
22
|
const tmpDir = yield make_tmp_dir_1.default();
|
|
22
|
-
|
|
23
|
+
const plugin = new webpack_bundle_analyzer_1.BundleAnalyzerPlugin({
|
|
24
|
+
generateStatsFile: true,
|
|
25
|
+
statsFilename: app_configs_1.default.statsOutputPath,
|
|
26
|
+
});
|
|
27
|
+
(_a = webpack_client_prod_1.default.plugins) === null || _a === void 0 ? void 0 : _a.push(plugin);
|
|
23
28
|
webpack_client_prod_1.default.output.path = tmpDir;
|
|
24
29
|
webpack_1.default(webpack_client_prod_1.default).run(() => { });
|
|
25
30
|
}))();
|
|
@@ -16,6 +16,7 @@ function calculateDependentConfig(config) {
|
|
|
16
16
|
serverOutputPath: path_1.default.resolve(config.cwd, config.buildPath),
|
|
17
17
|
clientOutputPath: path_1.default.resolve(config.cwd, config.buildPath, config.assetsPath),
|
|
18
18
|
clientPolyfillsEntry: get_polyfills_1.getPolyfills(config),
|
|
19
|
+
statsOutputPath: path_1.default.resolve(config.cwd, config.buildPath, config.statsOutputFilename),
|
|
19
20
|
});
|
|
20
21
|
}
|
|
21
22
|
exports.calculateDependentConfig = calculateDependentConfig;
|
|
@@ -53,12 +53,14 @@ function getDefaults() {
|
|
|
53
53
|
serverPort: 3000,
|
|
54
54
|
debug: false,
|
|
55
55
|
overridesPath: [overridesPath],
|
|
56
|
+
statsOutputFilename: 'stats.json',
|
|
56
57
|
componentsTheme: undefined,
|
|
57
58
|
keepCssVars: false,
|
|
58
59
|
// Эти пути зависят от других настроек, которые могут быть переопределены пользователем
|
|
59
60
|
publicPath: '',
|
|
60
61
|
serverOutputPath: '',
|
|
61
62
|
clientOutputPath: '',
|
|
63
|
+
statsOutputPath: '',
|
|
62
64
|
};
|
|
63
65
|
}
|
|
64
66
|
exports.getDefaults = getDefaults;
|