mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
chore(NA): improves @kbn/ui-shared-deps build performance (#105971)
* chore(NA): move packages assets optimization into the distributable build * chore(NA): include terser task on distributable build * chore(NA): migrate everything into the build tasks * chore(NA): update webpack config to include react profiler * chore(NA): optional fsevents * chore(NA): redo optional fsevents * chore(NA): remove noparse for fsevents * chore(NA): include missing task declaration * chore(NA): include sourcemaps * chore(NA): include metrics bundle file generation during distributable build * chore(NA): correctly setup paths * chore(NA): change sourcemap types * chore(NA): remove useless sourcemaps Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
This commit is contained in:
parent
62e81723af
commit
465b36ca9c
10 changed files with 320 additions and 112 deletions
|
@ -690,7 +690,7 @@
|
|||
"copy-webpack-plugin": "^6.0.2",
|
||||
"cpy": "^8.1.1",
|
||||
"css-loader": "^3.4.2",
|
||||
"css-minimizer-webpack-plugin": "^1.3.0",
|
||||
"cssnano": "^4.1.11",
|
||||
"cypress": "^6.8.0",
|
||||
"cypress-cucumber-preprocessor": "^2.5.2",
|
||||
"cypress-multi-reporters": "^1.4.0",
|
||||
|
@ -742,7 +742,11 @@
|
|||
"grunt-peg": "^2.0.1",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-babel": "^8.0.0",
|
||||
"gulp-brotli": "^3.0.0",
|
||||
"gulp-postcss": "^8.0.0",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"gulp-terser": "^2.0.1",
|
||||
"gulp-gzip": "^1.4.2",
|
||||
"gulp-zip": "^5.0.2",
|
||||
"has-ansi": "^3.0.0",
|
||||
"hdr-histogram-js": "^1.2.0",
|
||||
|
@ -830,6 +834,7 @@
|
|||
"tempy": "^0.3.0",
|
||||
"terminal-link": "^2.1.1",
|
||||
"terser-webpack-plugin": "^2.1.2",
|
||||
"terser": "^5.7.1",
|
||||
"ts-loader": "^7.0.5",
|
||||
"ts-morph": "^9.1.0",
|
||||
"tsd": "^0.13.1",
|
||||
|
|
|
@ -44,9 +44,7 @@ SRC_DEPS = [
|
|||
"@npm//abortcontroller-polyfill",
|
||||
"@npm//angular",
|
||||
"@npm//babel-loader",
|
||||
"@npm//compression-webpack-plugin",
|
||||
"@npm//core-js",
|
||||
"@npm//css-minimizer-webpack-plugin",
|
||||
"@npm//css-loader",
|
||||
"@npm//fflate",
|
||||
"@npm//jquery",
|
||||
|
@ -67,7 +65,6 @@ SRC_DEPS = [
|
|||
"@npm//rxjs",
|
||||
"@npm//styled-components",
|
||||
"@npm//symbol-observable",
|
||||
"@npm//terser-webpack-plugin",
|
||||
"@npm//url-loader",
|
||||
"@npm//val-loader",
|
||||
"@npm//whatwg-fetch"
|
||||
|
|
|
@ -7,20 +7,23 @@
|
|||
*/
|
||||
|
||||
const Path = require('path');
|
||||
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
||||
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
||||
const TerserPlugin = require('terser-webpack-plugin');
|
||||
|
||||
const CompressionPlugin = require('compression-webpack-plugin');
|
||||
const { REPO_ROOT } = require('@kbn/utils');
|
||||
const { RawSource } = require('webpack-sources');
|
||||
|
||||
const UiSharedDeps = require('./src/index');
|
||||
|
||||
const MOMENT_SRC = require.resolve('moment/min/moment-with-locales.js');
|
||||
const WEBPACK_SRC = require.resolve('webpack');
|
||||
|
||||
module.exports = {
|
||||
node: {
|
||||
child_process: 'empty',
|
||||
fs: 'empty',
|
||||
},
|
||||
externals: {
|
||||
module: 'module',
|
||||
},
|
||||
mode: 'production',
|
||||
entry: {
|
||||
'kbn-ui-shared-deps': './src/entry.js',
|
||||
|
@ -30,8 +33,7 @@ module.exports = {
|
|||
'kbn-ui-shared-deps.v8.light': ['@elastic/eui/dist/eui_theme_amsterdam_light.css'],
|
||||
},
|
||||
context: __dirname,
|
||||
// cheap-source-map should be used if needed
|
||||
devtool: false,
|
||||
devtool: 'cheap-source-map',
|
||||
output: {
|
||||
path: UiSharedDeps.distDir,
|
||||
filename: '[name].js',
|
||||
|
@ -39,10 +41,11 @@ module.exports = {
|
|||
devtoolModuleFilenameTemplate: (info) =>
|
||||
`kbn-ui-shared-deps/${Path.relative(REPO_ROOT, info.absoluteResourcePath)}`,
|
||||
library: '__kbnSharedDeps__',
|
||||
futureEmitAssets: true,
|
||||
},
|
||||
|
||||
module: {
|
||||
noParse: [MOMENT_SRC],
|
||||
noParse: [MOMENT_SRC, WEBPACK_SRC],
|
||||
rules: [
|
||||
{
|
||||
include: [require.resolve('./src/entry.js')],
|
||||
|
@ -102,35 +105,17 @@ module.exports = {
|
|||
resolve: {
|
||||
alias: {
|
||||
moment: MOMENT_SRC,
|
||||
// NOTE: Used to include react profiling on bundles
|
||||
// https://gist.github.com/bvaughn/25e6233aeb1b4f0cdb8d8366e54a3977#webpack-4
|
||||
'react-dom$': 'react-dom/profiling',
|
||||
'scheduler/tracing': 'scheduler/tracing-profiling',
|
||||
},
|
||||
extensions: ['.js', '.ts'],
|
||||
symlinks: false,
|
||||
},
|
||||
|
||||
optimization: {
|
||||
minimizer: [
|
||||
new CssMinimizerPlugin({
|
||||
parallel: false,
|
||||
minimizerOptions: {
|
||||
preset: [
|
||||
'default',
|
||||
{
|
||||
discardComments: false,
|
||||
},
|
||||
],
|
||||
},
|
||||
}),
|
||||
new TerserPlugin({
|
||||
cache: false,
|
||||
sourceMap: false,
|
||||
extractComments: false,
|
||||
parallel: false,
|
||||
terserOptions: {
|
||||
compress: true,
|
||||
mangle: true,
|
||||
},
|
||||
}),
|
||||
],
|
||||
minimize: false,
|
||||
noEmitOnErrors: true,
|
||||
splitChunks: {
|
||||
cacheGroups: {
|
||||
|
@ -155,44 +140,5 @@ module.exports = {
|
|||
new MiniCssExtractPlugin({
|
||||
filename: '[name].css',
|
||||
}),
|
||||
new CompressionPlugin({
|
||||
algorithm: 'brotliCompress',
|
||||
filename: '[path].br',
|
||||
test: /\.(js|css)$/,
|
||||
cache: false,
|
||||
}),
|
||||
new CompressionPlugin({
|
||||
algorithm: 'gzip',
|
||||
filename: '[path].gz',
|
||||
test: /\.(js|css)$/,
|
||||
cache: false,
|
||||
}),
|
||||
new (class MetricsPlugin {
|
||||
apply(compiler) {
|
||||
compiler.hooks.emit.tap('MetricsPlugin', (compilation) => {
|
||||
const metrics = [
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-js',
|
||||
value: compilation.assets['kbn-ui-shared-deps.js'].size(),
|
||||
},
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-css',
|
||||
value:
|
||||
compilation.assets['kbn-ui-shared-deps.css'].size() +
|
||||
compilation.assets['kbn-ui-shared-deps.v7.light.css'].size(),
|
||||
},
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-elastic',
|
||||
value: compilation.assets['kbn-ui-shared-deps.@elastic.js'].size(),
|
||||
},
|
||||
];
|
||||
|
||||
compilation.emitAsset('metrics.json', new RawSource(JSON.stringify(metrics, null, 2)));
|
||||
});
|
||||
}
|
||||
})(),
|
||||
],
|
||||
};
|
||||
|
|
|
@ -64,6 +64,7 @@ export async function buildDistributables(log: ToolingLog, options: BuildOptions
|
|||
await run(Tasks.TranspileBabel);
|
||||
await run(Tasks.CreatePackageJson);
|
||||
await run(Tasks.InstallDependencies);
|
||||
await run(Tasks.GeneratePackagesOptimizedAssets);
|
||||
await run(Tasks.CleanPackages);
|
||||
await run(Tasks.CreateNoticeFile);
|
||||
await run(Tasks.UpdateLicenseFile);
|
||||
|
|
200
src/dev/build/tasks/generate_packages_optimized_assets.ts
Normal file
200
src/dev/build/tasks/generate_packages_optimized_assets.ts
Normal file
|
@ -0,0 +1,200 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0 and the Server Side Public License, v 1; you may not use this file except
|
||||
* in compliance with, at your election, the Elastic License 2.0 or the Server
|
||||
* Side Public License, v 1.
|
||||
*/
|
||||
|
||||
import { pipeline } from 'stream';
|
||||
import { promisify } from 'util';
|
||||
|
||||
import fs from 'fs';
|
||||
import gulpBrotli from 'gulp-brotli';
|
||||
// @ts-expect-error
|
||||
import gulpGzip from 'gulp-gzip';
|
||||
// @ts-expect-error
|
||||
import gulpPostCSS from 'gulp-postcss';
|
||||
// @ts-expect-error
|
||||
import gulpTerser from 'gulp-terser';
|
||||
import terser from 'terser';
|
||||
import vfs from 'vinyl-fs';
|
||||
|
||||
import { ToolingLog } from '@kbn/dev-utils';
|
||||
import { Task, Build, write, deleteAll } from '../lib';
|
||||
|
||||
const asyncPipeline = promisify(pipeline);
|
||||
const asyncStat = promisify(fs.stat);
|
||||
|
||||
const removePreMinifySourceMaps = async (log: ToolingLog, build: Build) => {
|
||||
log.debug('Remove Pre Minify Sourcemaps');
|
||||
|
||||
await deleteAll(
|
||||
[build.resolvePath('node_modules/@kbn/ui-shared-deps/shared_built_assets', '**', '*.map')],
|
||||
log
|
||||
);
|
||||
};
|
||||
|
||||
const minifyKbnUiSharedDepsCSS = async (log: ToolingLog, build: Build) => {
|
||||
const buildRoot = build.resolvePath();
|
||||
|
||||
log.debug('Minify CSS');
|
||||
|
||||
await asyncPipeline(
|
||||
vfs.src(['node_modules/@kbn/ui-shared-deps/shared_built_assets/**/*.css'], {
|
||||
cwd: buildRoot,
|
||||
}),
|
||||
|
||||
gulpPostCSS([
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||
require('cssnano')({
|
||||
preset: [
|
||||
'default',
|
||||
{
|
||||
discardComments: false,
|
||||
},
|
||||
],
|
||||
}),
|
||||
]),
|
||||
|
||||
vfs.dest('node_modules/@kbn/ui-shared-deps/shared_built_assets', { cwd: buildRoot })
|
||||
);
|
||||
};
|
||||
|
||||
const minifyKbnUiSharedDepsJS = async (log: ToolingLog, build: Build) => {
|
||||
const buildRoot = build.resolvePath();
|
||||
|
||||
log.debug('Minify JS');
|
||||
|
||||
await asyncPipeline(
|
||||
vfs.src(['node_modules/@kbn/ui-shared-deps/shared_built_assets/**/*.js'], {
|
||||
cwd: buildRoot,
|
||||
}),
|
||||
|
||||
gulpTerser(
|
||||
{
|
||||
compress: true,
|
||||
mangle: true,
|
||||
},
|
||||
terser.minify
|
||||
),
|
||||
|
||||
vfs.dest('node_modules/@kbn/ui-shared-deps/shared_built_assets', { cwd: buildRoot })
|
||||
);
|
||||
};
|
||||
|
||||
const brotliCompressKbnUiSharedDeps = async (log: ToolingLog, build: Build) => {
|
||||
const buildRoot = build.resolvePath();
|
||||
|
||||
log.debug('Brotli compress');
|
||||
|
||||
await asyncPipeline(
|
||||
vfs.src(['node_modules/@kbn/ui-shared-deps/shared_built_assets/**/*.{js,css}'], {
|
||||
cwd: buildRoot,
|
||||
}),
|
||||
|
||||
gulpBrotli(),
|
||||
|
||||
vfs.dest('node_modules/@kbn/ui-shared-deps/shared_built_assets', { cwd: buildRoot })
|
||||
);
|
||||
};
|
||||
|
||||
const gzipCompressKbnUiSharedDeps = async (log: ToolingLog, build: Build) => {
|
||||
const buildRoot = build.resolvePath();
|
||||
|
||||
log.debug('GZip compress');
|
||||
|
||||
await asyncPipeline(
|
||||
vfs.src(['node_modules/@kbn/ui-shared-deps/shared_built_assets/**/*.{js,css}'], {
|
||||
cwd: buildRoot,
|
||||
}),
|
||||
|
||||
gulpGzip(),
|
||||
|
||||
vfs.dest('node_modules/@kbn/ui-shared-deps/shared_built_assets', { cwd: buildRoot })
|
||||
);
|
||||
};
|
||||
|
||||
const createKbnUiSharedDepsBundleMetrics = async (log: ToolingLog, build: Build) => {
|
||||
const bundleMetricsFilePath = build.resolvePath(
|
||||
'node_modules/@kbn/ui-shared-deps/shared_built_assets',
|
||||
'metrics.json'
|
||||
);
|
||||
|
||||
const kbnUISharedDepsJSFileSize = (
|
||||
await asyncStat(
|
||||
build.resolvePath(
|
||||
'node_modules/@kbn/ui-shared-deps/shared_built_assets',
|
||||
'kbn-ui-shared-deps.js'
|
||||
)
|
||||
)
|
||||
).size;
|
||||
|
||||
const kbnUISharedDepsCSSFileSize =
|
||||
(
|
||||
await asyncStat(
|
||||
build.resolvePath(
|
||||
'node_modules/@kbn/ui-shared-deps/shared_built_assets',
|
||||
'kbn-ui-shared-deps.css'
|
||||
)
|
||||
)
|
||||
).size +
|
||||
(
|
||||
await asyncStat(
|
||||
build.resolvePath(
|
||||
'node_modules/@kbn/ui-shared-deps/shared_built_assets',
|
||||
'kbn-ui-shared-deps.v7.light.css'
|
||||
)
|
||||
)
|
||||
).size;
|
||||
|
||||
const kbnUISharedDepsElasticJSFileSize = (
|
||||
await asyncStat(
|
||||
build.resolvePath(
|
||||
'node_modules/@kbn/ui-shared-deps/shared_built_assets',
|
||||
'kbn-ui-shared-deps.@elastic.js'
|
||||
)
|
||||
)
|
||||
).size;
|
||||
|
||||
log.debug('Create metrics.json');
|
||||
|
||||
const metrics = [
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-js',
|
||||
value: kbnUISharedDepsJSFileSize,
|
||||
},
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-css',
|
||||
value: kbnUISharedDepsCSSFileSize,
|
||||
},
|
||||
{
|
||||
group: 'page load bundle size',
|
||||
id: 'kbnUiSharedDeps-elastic',
|
||||
value: kbnUISharedDepsElasticJSFileSize,
|
||||
},
|
||||
];
|
||||
|
||||
await write(bundleMetricsFilePath, JSON.stringify(metrics, null, 2));
|
||||
};
|
||||
|
||||
const generateKbnUiSharedDepsOptimizedAssets = async (log: ToolingLog, build: Build) => {
|
||||
log.info('Creating optimized assets for @kbn/ui-shared-deps');
|
||||
await removePreMinifySourceMaps(log, build);
|
||||
await minifyKbnUiSharedDepsCSS(log, build);
|
||||
await minifyKbnUiSharedDepsJS(log, build);
|
||||
await createKbnUiSharedDepsBundleMetrics(log, build);
|
||||
await brotliCompressKbnUiSharedDeps(log, build);
|
||||
await gzipCompressKbnUiSharedDeps(log, build);
|
||||
};
|
||||
|
||||
export const GeneratePackagesOptimizedAssets: Task = {
|
||||
description: 'Generates Optimized Assets for Packages',
|
||||
|
||||
async run(config, log, build) {
|
||||
// Create optimized assets for @kbn/ui-shared-deps
|
||||
await generateKbnUiSharedDepsOptimizedAssets(log, build);
|
||||
},
|
||||
};
|
|
@ -15,6 +15,7 @@ export * from './create_archives_sources_task';
|
|||
export * from './create_archives_task';
|
||||
export * from './create_empty_dirs_and_files_task';
|
||||
export * from './create_readme_task';
|
||||
export * from './generate_packages_optimized_assets';
|
||||
export * from './install_dependencies_task';
|
||||
export * from './license_file_task';
|
||||
export * from './nodejs';
|
||||
|
|
|
@ -9,7 +9,7 @@ node scripts/build --debug
|
|||
echo " -> shipping metrics from build to ci-stats"
|
||||
node scripts/ship_ci_stats \
|
||||
--metrics target/optimizer_bundle_metrics.json \
|
||||
--metrics node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
--metrics build/kibana/node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
|
||||
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
|
||||
installDir="$PARENT_DIR/install/kibana"
|
||||
|
|
|
@ -38,7 +38,7 @@ if [[ -z "$CODE_COVERAGE" ]] ; then
|
|||
echo " -> shipping metrics from build to ci-stats"
|
||||
node scripts/ship_ci_stats \
|
||||
--metrics target/optimizer_bundle_metrics.json \
|
||||
--metrics node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
--metrics build/kibana/node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
|
||||
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
|
||||
installDir="$KIBANA_DIR/install/kibana"
|
||||
|
|
|
@ -10,7 +10,7 @@ node scripts/build --debug
|
|||
echo " -> shipping metrics from build to ci-stats"
|
||||
node scripts/ship_ci_stats \
|
||||
--metrics target/optimizer_bundle_metrics.json \
|
||||
--metrics node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
--metrics build/kibana/node_modules/@kbn/ui-shared-deps/shared_built_assets/metrics.json
|
||||
|
||||
linuxBuild="$(find "$KIBANA_DIR/target" -name 'kibana-*-linux-x86_64.tar.gz')"
|
||||
installDir="$KIBANA_DIR/install/kibana"
|
||||
|
|
128
yarn.lock
128
yarn.lock
|
@ -7099,7 +7099,7 @@ any-observable@^0.3.0:
|
|||
resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b"
|
||||
integrity sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==
|
||||
|
||||
any-promise@^1.0.0:
|
||||
any-promise@^1.0.0, any-promise@^1.1.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
|
||||
integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
|
||||
|
@ -8963,7 +8963,7 @@ bytes@3.0.0:
|
|||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
||||
integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
|
||||
|
||||
bytes@3.1.0:
|
||||
bytes@3.1.0, bytes@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
||||
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
|
||||
|
@ -10621,21 +10621,6 @@ css-loader@^3.4.2, css-loader@^3.5.3:
|
|||
schema-utils "^2.7.0"
|
||||
semver "^6.3.0"
|
||||
|
||||
css-minimizer-webpack-plugin@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-1.3.0.tgz#d867b4a54ca9920125b30263505e8cca72bc8cf1"
|
||||
integrity sha512-jFa0Siplmfef4ndKglpVaduY47oHQwioAOEGK0f0vAX0s+vc+SmP6cCMoc+8Adau5600RnOEld5VVdC8CQau7w==
|
||||
dependencies:
|
||||
cacache "^15.0.5"
|
||||
cssnano "^4.1.10"
|
||||
find-cache-dir "^3.3.1"
|
||||
jest-worker "^26.3.0"
|
||||
p-limit "^3.0.2"
|
||||
schema-utils "^3.0.0"
|
||||
serialize-javascript "^5.0.1"
|
||||
source-map "^0.6.1"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
css-select-base-adapter@^0.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
|
||||
|
@ -10751,10 +10736,10 @@ cssfontparser@^1.2.1:
|
|||
resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3"
|
||||
integrity sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=
|
||||
|
||||
cssnano-preset-default@^4.0.7:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
|
||||
integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
|
||||
cssnano-preset-default@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
|
||||
integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
|
||||
dependencies:
|
||||
css-declaration-sorter "^4.0.1"
|
||||
cssnano-util-raw-cache "^4.0.1"
|
||||
|
@ -10784,7 +10769,7 @@ cssnano-preset-default@^4.0.7:
|
|||
postcss-ordered-values "^4.1.2"
|
||||
postcss-reduce-initial "^4.0.3"
|
||||
postcss-reduce-transforms "^4.0.2"
|
||||
postcss-svgo "^4.0.2"
|
||||
postcss-svgo "^4.0.3"
|
||||
postcss-unique-selectors "^4.0.1"
|
||||
|
||||
cssnano-util-get-arguments@^4.0.0:
|
||||
|
@ -10809,13 +10794,13 @@ cssnano-util-same-parent@^4.0.0:
|
|||
resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
|
||||
integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
|
||||
|
||||
cssnano@^4.1.10:
|
||||
version "4.1.10"
|
||||
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
|
||||
integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
|
||||
cssnano@^4.1.11:
|
||||
version "4.1.11"
|
||||
resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
|
||||
integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
|
||||
dependencies:
|
||||
cosmiconfig "^5.0.0"
|
||||
cssnano-preset-default "^4.0.7"
|
||||
cssnano-preset-default "^4.0.8"
|
||||
is-resolvable "^1.0.0"
|
||||
postcss "^7.0.0"
|
||||
|
||||
|
@ -15128,6 +15113,14 @@ gulp-babel@^8.0.0:
|
|||
through2 "^2.0.0"
|
||||
vinyl-sourcemaps-apply "^0.2.0"
|
||||
|
||||
gulp-brotli@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gulp-brotli/-/gulp-brotli-3.0.0.tgz#7f5a1d8a6d43cab28056f9e56f29ae071dcfe4b4"
|
||||
integrity sha512-AkGR+FRn4Nrf9Ocx8/WXgNNX+owk4FN4xU4kRrso41DWWd9v1KXO8EyG1cGcwt4364Ax68b7ANcP9Em+/RM2OQ==
|
||||
dependencies:
|
||||
plugin-error "^1.0.1"
|
||||
through2 "^3.0.1"
|
||||
|
||||
gulp-cli@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc"
|
||||
|
@ -15152,6 +15145,29 @@ gulp-cli@^2.2.0:
|
|||
v8flags "^3.0.1"
|
||||
yargs "^7.1.0"
|
||||
|
||||
gulp-gzip@^1.4.2:
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/gulp-gzip/-/gulp-gzip-1.4.2.tgz#0422a94014248655b5b1a9eea1c2abee1d4f4337"
|
||||
integrity sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==
|
||||
dependencies:
|
||||
ansi-colors "^1.0.1"
|
||||
bytes "^3.0.0"
|
||||
fancy-log "^1.3.2"
|
||||
plugin-error "^1.0.0"
|
||||
stream-to-array "^2.3.0"
|
||||
through2 "^2.0.3"
|
||||
|
||||
gulp-postcss@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gulp-postcss/-/gulp-postcss-8.0.0.tgz#8d3772cd4d27bca55ec8cb4c8e576e3bde4dc550"
|
||||
integrity sha512-Wtl6vH7a+8IS/fU5W9IbOpcaLqKxd5L1DUOzaPmlnCbX1CrG0aWdwVnC3Spn8th0m8D59YbysV5zPUe1n/GJYg==
|
||||
dependencies:
|
||||
fancy-log "^1.3.2"
|
||||
plugin-error "^1.0.1"
|
||||
postcss "^7.0.2"
|
||||
postcss-load-config "^2.0.0"
|
||||
vinyl-sourcemaps-apply "^0.2.1"
|
||||
|
||||
gulp-sourcemaps@2.6.5:
|
||||
version "2.6.5"
|
||||
resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-2.6.5.tgz#a3f002d87346d2c0f3aec36af7eb873f23de8ae6"
|
||||
|
@ -15169,6 +15185,16 @@ gulp-sourcemaps@2.6.5:
|
|||
strip-bom-string "1.X"
|
||||
through2 "2.X"
|
||||
|
||||
gulp-terser@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/gulp-terser/-/gulp-terser-2.0.1.tgz#5f8f4fc54588b79519243809cc8eef4936286d0d"
|
||||
integrity sha512-XCrnCXP8ovNpgLK9McJIXlgm0j3W2TsiWu7K9y3m+Sn5XZgUzi6U8MPHtS3NdLMic9poCj695N0ARJ2B6atypw==
|
||||
dependencies:
|
||||
plugin-error "^1.0.1"
|
||||
terser "5.4.0"
|
||||
through2 "^4.0.2"
|
||||
vinyl-sourcemaps-apply "^0.2.1"
|
||||
|
||||
gulp-zip@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.0.2.tgz#2edf797ec842e770f4dfde8bef97d139015b1972"
|
||||
|
@ -17633,7 +17659,7 @@ jest-worker@^25.4.0:
|
|||
merge-stream "^2.0.0"
|
||||
supports-color "^7.0.0"
|
||||
|
||||
jest-worker@^26.2.1, jest-worker@^26.3.0, jest-worker@^26.6.2:
|
||||
jest-worker@^26.2.1, jest-worker@^26.6.2:
|
||||
version "26.6.2"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
|
||||
integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
|
||||
|
@ -21694,7 +21720,7 @@ platform@^1.3.0:
|
|||
resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.5.tgz#fb6958c696e07e2918d2eeda0f0bc9448d733444"
|
||||
integrity sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==
|
||||
|
||||
plugin-error@^1.0.1:
|
||||
plugin-error@^1.0.0, plugin-error@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c"
|
||||
integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==
|
||||
|
@ -22148,7 +22174,7 @@ postcss-selector-parser@^6.0.4:
|
|||
uniq "^1.0.1"
|
||||
util-deprecate "^1.0.2"
|
||||
|
||||
postcss-svgo@^4.0.2:
|
||||
postcss-svgo@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
|
||||
integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
|
||||
|
@ -23684,7 +23710,7 @@ readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0
|
|||
isarray "0.0.1"
|
||||
string_decoder "~0.10.x"
|
||||
|
||||
readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||
readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||
|
@ -25022,7 +25048,7 @@ serialize-error@^2.1.0:
|
|||
resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
|
||||
integrity sha1-ULZ51WNc34Rme9yOWa9OW4HV9go=
|
||||
|
||||
serialize-javascript@5.0.1, serialize-javascript@^5.0.1:
|
||||
serialize-javascript@5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
|
||||
integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
|
||||
|
@ -25463,7 +25489,7 @@ source-map-support@^0.3.2:
|
|||
dependencies:
|
||||
source-map "0.1.32"
|
||||
|
||||
source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12:
|
||||
source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@^0.5.6, source-map-support@~0.5.12, source-map-support@~0.5.19:
|
||||
version "0.5.19"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
||||
|
@ -25505,7 +25531,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
|
|||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
source-map@^0.7.2, source-map@^0.7.3:
|
||||
source-map@^0.7.2, source-map@^0.7.3, source-map@~0.7.2:
|
||||
version "0.7.3"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
|
||||
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
|
||||
|
@ -25945,6 +25971,13 @@ stream-splicer@^2.0.0:
|
|||
inherits "^2.0.1"
|
||||
readable-stream "^2.0.2"
|
||||
|
||||
stream-to-array@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353"
|
||||
integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=
|
||||
dependencies:
|
||||
any-promise "^1.1.0"
|
||||
|
||||
stream-to-async-iterator@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/stream-to-async-iterator/-/stream-to-async-iterator-0.2.0.tgz#bef5c885e9524f98b2fa5effecc357bd58483780"
|
||||
|
@ -26823,6 +26856,15 @@ terser-webpack-plugin@^3.0.0:
|
|||
terser "^4.8.0"
|
||||
webpack-sources "^1.4.3"
|
||||
|
||||
terser@5.4.0:
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.4.0.tgz#9815c0839072d5c894e22c6fc508fbe9f5e7d7e8"
|
||||
integrity sha512-3dZunFLbCJis9TAF2VnX+VrQLctRUmt1p3W2kCsJuZE4ZgWqh//+1MZ62EanewrqKoUf4zIaDGZAvml4UDc0OQ==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.7.2"
|
||||
source-map-support "~0.5.19"
|
||||
|
||||
terser@^4.1.2, terser@^4.6.12, terser@^4.6.3, terser@^4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
|
||||
|
@ -26832,6 +26874,15 @@ terser@^4.1.2, terser@^4.6.12, terser@^4.6.3, terser@^4.8.0:
|
|||
source-map "~0.6.1"
|
||||
source-map-support "~0.5.12"
|
||||
|
||||
terser@^5.7.1:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784"
|
||||
integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==
|
||||
dependencies:
|
||||
commander "^2.20.0"
|
||||
source-map "~0.7.2"
|
||||
source-map-support "~0.5.19"
|
||||
|
||||
test-exclude@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
|
||||
|
@ -26916,6 +26967,13 @@ through2@^3.0.1:
|
|||
dependencies:
|
||||
readable-stream "2 || 3"
|
||||
|
||||
through2@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764"
|
||||
integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==
|
||||
dependencies:
|
||||
readable-stream "3"
|
||||
|
||||
"through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6, through@^2.3.8, through@~2.3.4, through@~2.3.6, through@~2.3.8:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
|
@ -28778,7 +28836,7 @@ vinyl-sourcemap@^1.1.0:
|
|||
remove-bom-buffer "^3.0.0"
|
||||
vinyl "^2.0.0"
|
||||
|
||||
vinyl-sourcemaps-apply@^0.2.0:
|
||||
vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
|
||||
integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue