Added minify via esbuild

This commit is contained in:
SamTv12345 2024-07-17 14:21:34 +02:00
parent 7e75677e0b
commit 30e4d34788
4 changed files with 40 additions and 140 deletions

152
pnpm-lock.yaml generated
View file

@ -48,7 +48,7 @@ importers:
version: 7.16.0(eslint@9.6.0)(typescript@5.5.3)
'@vitejs/plugin-react-swc':
specifier: ^3.5.0
version: 3.7.0(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))
version: 3.7.0(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))
eslint:
specifier: ^9.6.0
version: 9.6.0
@ -90,13 +90,13 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.3
version: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
version: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vite-plugin-static-copy:
specifier: ^1.0.6
version: 1.0.6(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))
version: 1.0.6(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))
vite-plugin-svgr:
specifier: ^4.2.0
version: 4.2.0(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))
version: 4.2.0(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))
zustand:
specifier: ^4.5.4
version: 4.5.4(@types/react@18.3.3)(react@18.3.1)
@ -136,7 +136,7 @@ importers:
devDependencies:
vitepress:
specifier: ^1.3.0
version: 1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.2)(lightningcss@1.25.1)(postcss@8.4.39)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.3)(typescript@5.5.3)
version: 1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.2)(postcss@8.4.39)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.3)(typescript@5.5.3)
src:
dependencies:
@ -206,9 +206,6 @@ importers:
languages4translatewiki:
specifier: 0.1.3
version: 0.1.3
lightningcss:
specifier: ^1.25.1
version: 1.25.1
live-plugin-manager:
specifier: ^1.0.0
version: 1.0.0
@ -384,10 +381,10 @@ importers:
version: 5.5.3
vite:
specifier: ^5.3.3
version: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
version: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vite-plugin-require:
specifier: ^1.2.14
version: 1.2.14(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))
version: 1.2.14(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))
packages:
@ -2317,11 +2314,6 @@ packages:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
detect-libc@1.0.3:
resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==}
engines: {node: '>=0.10'}
hasBin: true
detect-node-es@1.1.0:
resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==}
@ -3414,64 +3406,6 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
lightningcss-darwin-arm64@1.25.1:
resolution: {integrity: sha512-G4Dcvv85bs5NLENcu/s1f7ehzE3D5ThnlWSDwE190tWXRQCQaqwcuHe+MGSVI/slm0XrxnaayXY+cNl3cSricw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [darwin]
lightningcss-darwin-x64@1.25.1:
resolution: {integrity: sha512-dYWuCzzfqRueDSmto6YU5SoGHvZTMU1Em9xvhcdROpmtOQLorurUZz8+xFxZ51lCO2LnYbfdjZ/gCqWEkwixNg==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [darwin]
lightningcss-freebsd-x64@1.25.1:
resolution: {integrity: sha512-hXoy2s9A3KVNAIoKz+Fp6bNeY+h9c3tkcx1J3+pS48CqAt+5bI/R/YY4hxGL57fWAIquRjGKW50arltD6iRt/w==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [freebsd]
lightningcss-linux-arm-gnueabihf@1.25.1:
resolution: {integrity: sha512-tWyMgHFlHlp1e5iW3EpqvH5MvsgoN7ZkylBbG2R2LWxnvH3FuWCJOhtGcYx9Ks0Kv0eZOBud789odkYLhyf1ng==}
engines: {node: '>= 12.0.0'}
cpu: [arm]
os: [linux]
lightningcss-linux-arm64-gnu@1.25.1:
resolution: {integrity: sha512-Xjxsx286OT9/XSnVLIsFEDyDipqe4BcLeB4pXQ/FEA5+2uWCCuAEarUNQumRucnj7k6ftkAHUEph5r821KBccQ==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
lightningcss-linux-arm64-musl@1.25.1:
resolution: {integrity: sha512-IhxVFJoTW8wq6yLvxdPvyHv4NjzcpN1B7gjxrY3uaykQNXPHNIpChLB52+wfH+yS58zm1PL4LemUp8u9Cfp6Bw==}
engines: {node: '>= 12.0.0'}
cpu: [arm64]
os: [linux]
lightningcss-linux-x64-gnu@1.25.1:
resolution: {integrity: sha512-RXIaru79KrREPEd6WLXfKfIp4QzoppZvD3x7vuTKkDA64PwTzKJ2jaC43RZHRt8BmyIkRRlmywNhTRMbmkPYpA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
lightningcss-linux-x64-musl@1.25.1:
resolution: {integrity: sha512-TdcNqFsAENEEFr8fJWg0Y4fZ/nwuqTRsIr7W7t2wmDUlA8eSXVepeeONYcb+gtTj1RaXn/WgNLB45SFkz+XBZA==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [linux]
lightningcss-win32-x64-msvc@1.25.1:
resolution: {integrity: sha512-9KZZkmmy9oGDSrnyHuxP6iMhbsgChUiu/NSgOx+U1I/wTngBStDf2i2aGRCHvFqj19HqqBEI4WuGVQBa2V6e0A==}
engines: {node: '>= 12.0.0'}
cpu: [x64]
os: [win32]
lightningcss@1.25.1:
resolution: {integrity: sha512-V0RMVZzK1+rCHpymRv4URK2lNhIRyO8g7U7zOFwVAhJuat74HtkjIQpQRKNCwFEYkRGpafOpmXXLoaoBcyVtBg==}
engines: {node: '>= 12.0.0'}
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@ -6096,16 +6030,16 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
'@vitejs/plugin-react-swc@3.7.0(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))':
'@vitejs/plugin-react-swc@3.7.0(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))':
dependencies:
'@swc/core': 1.5.28
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
transitivePeerDependencies:
- '@swc/helpers'
'@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))(vue@3.4.31(typescript@5.5.3))':
'@vitejs/plugin-vue@5.0.5(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))(vue@3.4.31(typescript@5.5.3))':
dependencies:
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vue: 3.4.31(typescript@5.5.3)
'@vue/compiler-core@3.4.31':
@ -6763,8 +6697,6 @@ snapshots:
destroy@1.2.0: {}
detect-libc@1.0.3: {}
detect-node-es@1.1.0: {}
devlop@1.1.0:
@ -8112,47 +8044,6 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
lightningcss-darwin-arm64@1.25.1:
optional: true
lightningcss-darwin-x64@1.25.1:
optional: true
lightningcss-freebsd-x64@1.25.1:
optional: true
lightningcss-linux-arm-gnueabihf@1.25.1:
optional: true
lightningcss-linux-arm64-gnu@1.25.1:
optional: true
lightningcss-linux-arm64-musl@1.25.1:
optional: true
lightningcss-linux-x64-gnu@1.25.1:
optional: true
lightningcss-linux-x64-musl@1.25.1:
optional: true
lightningcss-win32-x64-msvc@1.25.1:
optional: true
lightningcss@1.25.1:
dependencies:
detect-libc: 1.0.3
optionalDependencies:
lightningcss-darwin-arm64: 1.25.1
lightningcss-darwin-x64: 1.25.1
lightningcss-freebsd-x64: 1.25.1
lightningcss-linux-arm-gnueabihf: 1.25.1
lightningcss-linux-arm64-gnu: 1.25.1
lightningcss-linux-arm64-musl: 1.25.1
lightningcss-linux-x64-gnu: 1.25.1
lightningcss-linux-x64-musl: 1.25.1
lightningcss-win32-x64-msvc: 1.25.1
lines-and-columns@1.2.4: {}
live-plugin-manager@1.0.0:
@ -9408,14 +9299,14 @@ snapshots:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
vite-plugin-require@1.2.14(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)):
vite-plugin-require@1.2.14(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3)):
dependencies:
'@babel/generator': 7.24.7
'@babel/parser': 7.24.7
'@babel/traverse': 7.24.7
'@babel/types': 7.24.7
'@vue/compiler-sfc': 3.4.31
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vue-loader: 17.4.2(@vue/compiler-sfc@3.4.31)(webpack@5.93.0)
webpack: 5.93.0
transitivePeerDependencies:
@ -9426,26 +9317,26 @@ snapshots:
- vue
- webpack-cli
vite-plugin-static-copy@1.0.6(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)):
vite-plugin-static-copy@1.0.6(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3)):
dependencies:
chokidar: 3.6.0
fast-glob: 3.3.2
fs-extra: 11.2.0
picocolors: 1.0.1
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vite-plugin-svgr@4.2.0(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)):
vite-plugin-svgr@4.2.0(rollup@4.18.0)(typescript@5.5.3)(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@4.18.0)
'@svgr/core': 8.1.0(typescript@5.5.3)
'@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.3))
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
transitivePeerDependencies:
- rollup
- supports-color
- typescript
vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3):
vite@5.3.3(@types/node@20.14.10)(terser@5.31.3):
dependencies:
esbuild: 0.21.5
postcss: 8.4.39
@ -9453,17 +9344,16 @@ snapshots:
optionalDependencies:
'@types/node': 20.14.10
fsevents: 2.3.3
lightningcss: 1.25.1
terser: 5.31.3
vitepress@1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.2)(lightningcss@1.25.1)(postcss@8.4.39)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.3)(typescript@5.5.3):
vitepress@1.3.0(@algolia/client-search@4.23.3)(@types/node@20.14.10)(@types/react@18.3.3)(axios@1.7.2)(postcss@8.4.39)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(terser@5.31.3)(typescript@5.5.3):
dependencies:
'@docsearch/css': 3.6.0
'@docsearch/js': 3.6.0(@algolia/client-search@4.23.3)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
'@shikijs/core': 1.10.3
'@shikijs/transformers': 1.10.3
'@types/markdown-it': 14.1.1
'@vitejs/plugin-vue': 5.0.5(vite@5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3))(vue@3.4.31(typescript@5.5.3))
'@vitejs/plugin-vue': 5.0.5(vite@5.3.3(@types/node@20.14.10)(terser@5.31.3))(vue@3.4.31(typescript@5.5.3))
'@vue/devtools-api': 7.3.5
'@vue/shared': 3.4.31
'@vueuse/core': 10.11.0(vue@3.4.31(typescript@5.5.3))
@ -9472,7 +9362,7 @@ snapshots:
mark.js: 8.11.1
minisearch: 6.3.0
shiki: 1.10.3
vite: 5.3.3(@types/node@20.14.10)(lightningcss@1.25.1)(terser@5.31.3)
vite: 5.3.3(@types/node@20.14.10)(terser@5.31.3)
vue: 3.4.31(typescript@5.5.3)
optionalDependencies:
postcss: 8.4.39

View file

@ -305,8 +305,7 @@ const getFileCompressed = async (filename, contentType) => {
if (compressResult.error) {
console.error(`Error compressing CSS (${filename}) using terser`, compressResult.error);
} else {
const decoder = new TextDecoder('utf-8');
content = decoder.decode(compressResult.code)
content = compressResult
}
} catch (error) {
console.error(`CleanCSS.minify() returned an error on ${filename}: ${error}`);

View file

@ -5,7 +5,7 @@
const fsp = require('fs').promises;
import {expose} from 'threads'
import {transform} from 'esbuild';
import {build, transform} from 'esbuild';
import {bundleAsync} from 'lightningcss';
/*
@ -22,11 +22,23 @@ const compressJS = async (content) => {
* @param {string} ROOT_DIR - the root dir of Etherpad
*/
const compressCSS = async (content) => {
return await bundleAsync({
const transformedCSS = await build(
{
entryPoints: [content],
minify: true,
filename: content
})
bundle: true,
loader:{
'.ttf': 'dataurl',
'.otf': 'dataurl',
'.woff': 'dataurl',
'.woff2': 'dataurl',
'.eot': 'dataurl',
'.svg': 'dataurl'
},
write: false
}
)
return transformedCSS.outputFiles[0].text
};
expose({

View file

@ -52,7 +52,6 @@
"jsonminify": "0.4.2",
"jsonwebtoken": "^9.0.2",
"languages4translatewiki": "0.1.3",
"lightningcss": "^1.25.1",
"live-plugin-manager": "^1.0.0",
"lodash.clonedeep": "4.5.0",
"log4js": "^6.9.1",