Update JS dependencies (#15033)

* Update JS dependencies

- Update all JS dependencies
- For octicons, rename trashcan to trash
- For svgo, migrate to v2 api, output seems to have slightly changed but icons look the same
- For stylelint, update config, fix custom property duplicates
- For monaco, drop legacy Edge support
- For eslint, enable new rules, fix new issues
- For less-loader, remove deprecated import syntax

* update svgo usage in generate-images and rebuild logo.svg with it
This commit is contained in:
silverwind 2021-03-22 05:04:19 +01:00 committed by GitHub
parent a587a28434
commit 1a03fa7a4f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
273 changed files with 1858 additions and 1656 deletions

View file

@ -2,7 +2,7 @@
'use strict';
const imageminZopfli = require('imagemin-zopfli');
const Svgo = require('svgo');
const {optimize, extendDefaultPlugins} = require('svgo');
const {fabric} = require('fabric');
const {readFile, writeFile} = require('fs').promises;
const {resolve} = require('path');
@ -24,14 +24,15 @@ function loadSvg(svg) {
async function generate(svg, outputFile, {size, bg}) {
if (outputFile.endsWith('.svg')) {
const svgo = new Svgo({
plugins: [
{removeDimensions: true},
{addAttributesToSVGElement: {attributes: [{width: size}, {height: size}]}},
],
const {data} = optimize(svg, {
plugins: extendDefaultPlugins([
'removeDimensions',
{
name: 'addAttributesToSVGElement',
params: {attributes: [{width: size}, {height: size}]}
},
]),
});
const {data} = await svgo.optimize(svg);
await writeFile(outputFile, data);
return;
}

View file

@ -2,7 +2,7 @@
'use strict';
const fastGlob = require('fast-glob');
const Svgo = require('svgo');
const {optimize, extendDefaultPlugins} = require('svgo');
const {resolve, parse} = require('path');
const {readFile, writeFile, mkdir} = require('fs').promises;
@ -25,31 +25,20 @@ async function processFile(file, {prefix, fullName} = {}) {
if (prefix === 'octicon') name = name.replace(/-[0-9]+$/, ''); // chop of '-16' on octicons
}
const svgo = new Svgo({
plugins: [
{removeXMLNS: true},
{removeDimensions: true},
const {data} = optimize(await readFile(file, 'utf8'), {
plugins: extendDefaultPlugins([
'removeXMLNS',
'removeDimensions',
{
addClassesToSVGElement: {
classNames: [
'svg',
name,
],
},
name: 'addClassesToSVGElement',
params: {classNames: ['svg', name]},
},
{
addAttributesToSVGElement: {
attributes: [
{'width': '16'},
{'height': '16'},
{'aria-hidden': 'true'},
],
},
name: 'addAttributesToSVGElement',
params: {attributes: [{'width': '16'}, {'height': '16'}, {'aria-hidden': 'true'}]},
},
],
]),
});
const {data} = await svgo.optimize(await readFile(file, 'utf8'));
await writeFile(resolve(outputDir, `${name}.svg`), data);
}