arui-scripts 15.3.0 → 15.4.1
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-build.log +0 -0
- package/.turbo/turbo-test.log +91 -0
- package/CHANGELOG.md +278 -656
- package/README.md +31 -2
- package/bin/build.sh +2 -1
- package/build/commands/build/build-wrapper.d.ts +2 -2
- package/build/commands/build/client.js +3 -3
- package/build/commands/bundle-analyze/index.js +15 -15
- package/build/commands/changelog/index.js +2 -2
- package/build/commands/util/make-tmp-dir.d.ts +1 -1
- package/build/commands/util/make-tmp-dir.js +2 -2
- package/build/commands/util/run-client-dev-server.d.ts +1 -1
- package/build/commands/util/run-client-dev-server.js +1 -4
- package/build/configs/app-configs/calculate-dependent-config.d.ts +54 -8
- package/build/configs/app-configs/calculate-dependent-config.js +11 -13
- package/build/configs/app-configs/get-defaults.d.ts +3 -2
- package/build/configs/app-configs/get-defaults.js +75 -55
- package/build/configs/app-configs/index.d.ts +5 -3
- package/build/configs/app-configs/index.js +13 -7
- package/build/configs/app-configs/types.d.ts +51 -38
- package/build/configs/app-configs/update-with-config-file.d.ts +2 -2
- package/build/configs/app-configs/update-with-config-file.js +5 -7
- package/build/configs/app-configs/update-with-env.js +3 -8
- package/build/configs/app-configs/update-with-package.d.ts +2 -2
- package/build/configs/app-configs/update-with-package.js +5 -10
- package/build/configs/app-configs/update-with-presets.d.ts +2 -2
- package/build/configs/app-configs/update-with-presets.js +8 -15
- package/build/configs/app-configs/validate-settings-keys.d.ts +2 -5
- package/build/configs/app-configs/validate-settings-keys.js +6 -7
- package/build/configs/babel-client.d.ts +33 -1
- package/build/configs/babel-dependencies.d.ts +14 -1
- package/build/configs/babel-server.d.ts +26 -1
- package/build/configs/dev-server.d.ts +15 -1
- package/build/configs/jest/index.d.ts +33 -1
- package/build/configs/postcss.config.d.ts +1 -1
- package/build/configs/postcss.d.ts +1 -1
- package/build/configs/process-assets-plugin-output.d.ts +2 -0
- package/build/configs/process-assets-plugin-output.js +32 -0
- package/build/configs/server-externals-exemptions.d.ts +1 -1
- package/build/configs/util/apply-overrides.d.ts +23 -7
- package/build/configs/util/apply-overrides.js +3 -2
- package/build/configs/util/get-entry.d.ts +2 -1
- package/build/configs/webpack.client.d.ts +10 -2
- package/build/configs/webpack.client.dev.js +1 -1
- package/build/configs/webpack.client.js +51 -37
- package/build/configs/webpack.client.prod.js +1 -1
- package/build/index.d.ts +1 -1
- package/build/tsconfig-local.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/build/configs/app-configs/available-package-settings.d.ts +0 -8
- package/build/configs/app-configs/available-package-settings.js +0 -34
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createClientWebpackConfig = void 0;
|
|
6
|
+
exports.createClientWebpackConfig = exports.createSingleClientWebpackConfig = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const webpack_1 = __importDefault(require("webpack"));
|
|
9
9
|
const webpack_manifest_plugin_1 = require("webpack-manifest-plugin");
|
|
@@ -14,7 +14,6 @@ const compression_webpack_plugin_1 = __importDefault(require("compression-webpac
|
|
|
14
14
|
const assets_webpack_plugin_1 = __importDefault(require("assets-webpack-plugin"));
|
|
15
15
|
const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
|
|
16
16
|
const getCSSModuleLocalIdent_1 = __importDefault(require("react-dev-utils/getCSSModuleLocalIdent"));
|
|
17
|
-
const PnpWebpackPlugin = require('pnp-webpack-plugin');
|
|
18
17
|
const get_entry_1 = __importDefault(require("./util/get-entry"));
|
|
19
18
|
const app_configs_1 = __importDefault(require("./app-configs"));
|
|
20
19
|
const babel_client_1 = __importDefault(require("./babel-client"));
|
|
@@ -27,38 +26,50 @@ const case_sensitive_paths_webpack_plugin_1 = __importDefault(require("case-sens
|
|
|
27
26
|
const webpack_deduplication_plugin_1 = require("webpack-deduplication-plugin");
|
|
28
27
|
const minimizers_1 = require("./config-extras/minimizers");
|
|
29
28
|
const mini_svg_data_uri_1 = __importDefault(require("mini-svg-data-uri"));
|
|
29
|
+
const process_assets_plugin_output_1 = require("./process-assets-plugin-output");
|
|
30
|
+
const PnpWebpackPlugin = require('pnp-webpack-plugin');
|
|
30
31
|
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
31
32
|
const noopPath = require.resolve('./util/noop');
|
|
32
33
|
function getSingleEntry(entryPoint, mode) {
|
|
33
34
|
return [
|
|
34
35
|
...(Array.isArray(app_configs_1.default.clientPolyfillsEntry) ? app_configs_1.default.clientPolyfillsEntry : [app_configs_1.default.clientPolyfillsEntry]),
|
|
35
|
-
mode === 'dev' ? require.resolve('webpack/hot/dev-server') : false,
|
|
36
36
|
...entryPoint
|
|
37
37
|
].filter(Boolean);
|
|
38
38
|
}
|
|
39
|
-
//
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
// Нам важно шарить assets plugin между разными сборками, чтобы файл не перезаписывался
|
|
40
|
+
const assetsPlugin = new assets_webpack_plugin_1.default({
|
|
41
|
+
path: app_configs_1.default.serverOutputPath,
|
|
42
|
+
processOutput: process_assets_plugin_output_1.processAssetsPluginOutput,
|
|
43
|
+
});
|
|
44
|
+
// Этот плагин нужен для того, чтобы клиентский код так же могу получить информацию о сборке.
|
|
45
|
+
// Это позволяет нам использовать данные о сборки на клиенте.
|
|
46
|
+
const clientAssetsPlugin = new assets_webpack_plugin_1.default({
|
|
47
|
+
path: app_configs_1.default.clientOutputPath,
|
|
48
|
+
processOutput: process_assets_plugin_output_1.processAssetsPluginOutput,
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* Создает конфигурацию для сборки клиентского кода. Может быть использована для создания дополнительных конфигураций.
|
|
52
|
+
* @param mode Режим сборки (dev или prod)
|
|
53
|
+
* @param entry Точка входа, любой валидный вход для webpack
|
|
54
|
+
* @param configName Имя конфигурации, если не указано, то используется имя по умолчанию
|
|
55
|
+
*/
|
|
56
|
+
const createSingleClientWebpackConfig = (mode, entry, configName) => (Object.assign(Object.assign({}, (configName ? { name: configName } : {})), { target: 'web', mode: mode === 'dev' ? 'development' : 'production', devtool: mode === 'dev' ? app_configs_1.default.devSourceMaps : 'source-map', entry: (0, get_entry_1.default)(entry, getSingleEntry, mode),
|
|
45
57
|
// in production mode we need to fail on first error
|
|
46
|
-
bail: mode === 'prod',
|
|
47
|
-
context: app_configs_1.default.cwd,
|
|
48
|
-
output: {
|
|
58
|
+
bail: mode === 'prod', context: app_configs_1.default.cwd, output: {
|
|
49
59
|
assetModuleFilename: 'static/media/[name].[hash:8][ext]',
|
|
50
60
|
// Add /* filename */ comments to generated require()s in the output.
|
|
51
61
|
pathinfo: mode === 'dev',
|
|
52
62
|
path: app_configs_1.default.clientOutputPath,
|
|
53
63
|
publicPath: app_configs_1.default.publicPath,
|
|
54
64
|
filename: mode === 'dev' ? '[name].js' : '[name].[chunkhash:8].js',
|
|
55
|
-
chunkFilename: mode === 'dev'
|
|
65
|
+
chunkFilename: mode === 'dev'
|
|
66
|
+
? `${configName ? `${configName}-` : ''}[name].js`
|
|
67
|
+
: `${configName ? `${configName}-` : ''}[name].[chunkhash:8].chunk.js`,
|
|
56
68
|
// Point sourcemap entries to original disk location (format as URL on Windows)
|
|
57
69
|
devtoolModuleFilenameTemplate: (info) => path_1.default
|
|
58
70
|
.relative(app_configs_1.default.appSrc, info.absoluteResourcePath)
|
|
59
71
|
.replace(/\\/g, '/'),
|
|
60
|
-
},
|
|
61
|
-
optimization: {
|
|
72
|
+
}, optimization: {
|
|
62
73
|
splitChunks: mode === 'prod'
|
|
63
74
|
? {
|
|
64
75
|
chunks: "all",
|
|
@@ -72,7 +83,14 @@ const createClientWebpackConfig = (mode) => ({
|
|
|
72
83
|
vendor: {
|
|
73
84
|
test: /node_modules/,
|
|
74
85
|
chunks: "initial",
|
|
75
|
-
name:
|
|
86
|
+
name: (_, chunks, cacheGroupKey) => {
|
|
87
|
+
if (!configName) {
|
|
88
|
+
return 'vendor';
|
|
89
|
+
}
|
|
90
|
+
// Нам нужно сделать так, чтобы у разных конфигураций были разные имена чанков
|
|
91
|
+
const allChunksNames = chunks.map((item) => item.name).join('~');
|
|
92
|
+
return `${cacheGroupKey}-${allChunksNames}`;
|
|
93
|
+
},
|
|
76
94
|
priority: 10,
|
|
77
95
|
enforce: true
|
|
78
96
|
}
|
|
@@ -127,8 +145,7 @@ const createClientWebpackConfig = (mode) => ({
|
|
|
127
145
|
// Оптимизации времени билда, см https://webpack.js.org/guides/build-performance/
|
|
128
146
|
removeAvailableModules: mode !== 'dev',
|
|
129
147
|
removeEmptyChunks: mode !== 'dev',
|
|
130
|
-
},
|
|
131
|
-
resolve: {
|
|
148
|
+
}, resolve: {
|
|
132
149
|
// This allows you to set a fallback for where Webpack should look for modules.
|
|
133
150
|
// We placed these paths second because we want `node_modules` to "win"
|
|
134
151
|
// if there are any conflicts. This matches Node resolution mechanism.
|
|
@@ -147,21 +164,18 @@ const createClientWebpackConfig = (mode) => ({
|
|
|
147
164
|
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx', '.ts', '.tsx']
|
|
148
165
|
})),
|
|
149
166
|
].filter(Boolean)),
|
|
150
|
-
},
|
|
151
|
-
resolveLoader: {
|
|
167
|
+
}, resolveLoader: {
|
|
152
168
|
plugins: [
|
|
153
169
|
PnpWebpackPlugin.moduleLoader(module),
|
|
154
170
|
],
|
|
155
|
-
},
|
|
156
|
-
cache: mode === 'dev'
|
|
171
|
+
}, cache: mode === 'dev'
|
|
157
172
|
? {
|
|
158
173
|
type: 'filesystem',
|
|
159
174
|
buildDependencies: {
|
|
160
175
|
config: [__filename],
|
|
161
176
|
},
|
|
162
177
|
}
|
|
163
|
-
: false,
|
|
164
|
-
module: {
|
|
178
|
+
: false, module: {
|
|
165
179
|
// typescript interface will be removed from modules, and we will get an error on correct code
|
|
166
180
|
// see https://github.com/webpack/webpack/issues/7378
|
|
167
181
|
strictExportPresence: !app_configs_1.default.tsconfig,
|
|
@@ -294,9 +308,9 @@ const createClientWebpackConfig = (mode) => ({
|
|
|
294
308
|
// ** STOP ** Are you adding a new loader?
|
|
295
309
|
// Make sure to add the new loader(s) before asset modules
|
|
296
310
|
],
|
|
297
|
-
},
|
|
298
|
-
|
|
299
|
-
|
|
311
|
+
}, plugins: ([
|
|
312
|
+
assetsPlugin,
|
|
313
|
+
clientAssetsPlugin,
|
|
300
314
|
new webpack_1.default.DefinePlugin(Object.assign({
|
|
301
315
|
// Tell Webpack to provide empty mocks for process.env.
|
|
302
316
|
'process.env': '{}' }, (mode === 'dev'
|
|
@@ -354,20 +368,20 @@ const createClientWebpackConfig = (mode) => ({
|
|
|
354
368
|
// This should works fine, since proptypes usage should be eliminated in production mode
|
|
355
369
|
mode === 'prod' && !app_configs_1.default.keepPropTypes && new webpack_1.default.NormalModuleReplacementPlugin(/^react-style-proptype$/, noopPath),
|
|
356
370
|
mode === 'prod' && !app_configs_1.default.keepPropTypes && new webpack_1.default.NormalModuleReplacementPlugin(/^thrift-services\/proptypes/, noopPath)
|
|
357
|
-
].filter(Boolean)),
|
|
358
|
-
experiments: {
|
|
371
|
+
].filter(Boolean)), experiments: {
|
|
359
372
|
backCompat: app_configs_1.default.webpack4Compatibility,
|
|
360
|
-
},
|
|
373
|
+
},
|
|
361
374
|
// Без этого комиляция трирегилась на изменение в node_modules и приводила к утечке памяти
|
|
362
375
|
watchOptions: {
|
|
363
376
|
ignored: new RegExp(app_configs_1.default.watchIgnorePath.join('|')),
|
|
364
377
|
aggregateTimeout: 100,
|
|
365
|
-
},
|
|
366
|
-
//
|
|
367
|
-
// splitting or minification in interest of speed. These warnings become
|
|
368
|
-
// cumbersome.
|
|
378
|
+
},
|
|
379
|
+
// Выключаем performance hints, т.к. размеры бандлов контролируются не в рамках arui-scripts
|
|
369
380
|
performance: {
|
|
370
|
-
hints:
|
|
371
|
-
}
|
|
372
|
-
|
|
381
|
+
hints: false,
|
|
382
|
+
} }));
|
|
383
|
+
exports.createSingleClientWebpackConfig = createSingleClientWebpackConfig;
|
|
384
|
+
const createClientWebpackConfig = (mode) => {
|
|
385
|
+
return (0, exports.createSingleClientWebpackConfig)(mode, app_configs_1.default.clientEntry);
|
|
386
|
+
};
|
|
373
387
|
exports.createClientWebpackConfig = createClientWebpackConfig;
|
|
@@ -5,5 +5,5 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const apply_overrides_1 = __importDefault(require("./util/apply-overrides"));
|
|
7
7
|
const webpack_client_1 = require("./webpack.client");
|
|
8
|
-
const config = (0, apply_overrides_1.default)(['webpack', 'webpackClient', 'webpackProd', 'webpackClientProd'], (0, webpack_client_1.createClientWebpackConfig)('prod'));
|
|
8
|
+
const config = (0, apply_overrides_1.default)(['webpack', 'webpackClient', 'webpackProd', 'webpackClientProd'], (0, webpack_client_1.createClientWebpackConfig)('prod'), { createSingleClientWebpackConfig: webpack_client_1.createSingleClientWebpackConfig.bind(null, 'prod') });
|
|
9
9
|
exports.default = config;
|
package/build/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type { OverrideFile } from './configs/util/apply-overrides';
|
|
2
|
-
export type { PackageSettings } from './configs/app-configs/
|
|
2
|
+
export type { AppConfigs, PackageSettings } from './configs/app-configs/types';
|
|
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';
|