vtex-css-sanitizer-cli 1.0.5 → 1.0.8
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/.github/workflows/release.yml +4 -0
- package/PUBLISHING.md +84 -0
- package/README.md +19 -6
- package/gui/out/renderer/assets/{index-B4Zg_1V2.js → index-CdnHXLFU.js} +258 -75
- package/gui/out/renderer/assets/{index-BUoLJXor.css → index-CkektP3p.css} +258 -74
- package/gui/out/renderer/index.html +2 -2
- package/gui/package.json +4 -3
- package/gui/yarn.lock +5 -0
- package/package.json +1 -1
- package/docs/assets/cli-mockup.png +0 -0
- package/docs/assets/gui-mockup.png +0 -0
- package/docs/favicon.svg +0 -5
- package/docs/index.html +0 -336
- package/docs/script.js +0 -64
- package/docs/styles.css +0 -745
|
@@ -39,6 +39,10 @@ jobs:
|
|
|
39
39
|
working-directory: gui
|
|
40
40
|
run: yarn install --frozen-lockfile
|
|
41
41
|
|
|
42
|
+
- name: Sync version from tag
|
|
43
|
+
working-directory: gui
|
|
44
|
+
run: npm version "${GITHUB_REF_NAME#v}" --no-git-tag-version
|
|
45
|
+
|
|
42
46
|
- name: Build & Package
|
|
43
47
|
working-directory: gui
|
|
44
48
|
run: yarn ${{ matrix.build_script }}
|
package/PUBLISHING.md
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Guía de Publicación y Releases
|
|
2
|
+
|
|
3
|
+
Este repositorio actúa como un monorepo que contiene 2 proyectos independientes que conviven juntos:
|
|
4
|
+
|
|
5
|
+
1. **CLI (Línea de comandos)**: Publicado en el registro de `npm`.
|
|
6
|
+
2. **GUI (Aplicación de Escritorio)**: Compilado y publicado en GitHub Releases a través de GitHub Actions.
|
|
7
|
+
|
|
8
|
+
A continuación se detallan los 3 escenarios posibles de publicación.
|
|
9
|
+
|
|
10
|
+
> **Nota sobre la versión de la GUI:** No es necesario actualizar manualmente la versión en `gui/package.json`. El workflow de GitHub Actions la sincroniza automáticamente desde el tag de Git antes de compilar.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Escenario 1: Cambios en CLI y GUI
|
|
15
|
+
|
|
16
|
+
Cuando hay cambios en ambos proyectos, una sola secuencia de comandos publica todo:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# 1. Compilar el CLI
|
|
20
|
+
npm run build
|
|
21
|
+
|
|
22
|
+
# 2. Bump de versión (genera commit + tag automáticamente)
|
|
23
|
+
npm version patch # o minor / major según corresponda
|
|
24
|
+
|
|
25
|
+
# 3. Publicar CLI en npm
|
|
26
|
+
npm publish
|
|
27
|
+
|
|
28
|
+
# 4. Push de todo (el tag v*.*.* dispara el build de la GUI)
|
|
29
|
+
git push origin main --follow-tags
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
El `npm version` crea el tag `v*.*.*` que automáticamente dispara la GitHub Action para compilar y publicar la GUI.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Escenario 2: Solo cambios en la GUI
|
|
37
|
+
|
|
38
|
+
Cuando los cambios fueron exclusivamente dentro de `/gui` y no hay nada nuevo en el CLI:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 1. Commit de los cambios
|
|
42
|
+
git add gui/
|
|
43
|
+
git commit -m "feat(gui): descripción del cambio"
|
|
44
|
+
|
|
45
|
+
# 2. Crear tag manualmente (la versión del tag se inyecta en gui/package.json durante el build)
|
|
46
|
+
git tag v1.0.8 # usar la versión que corresponda
|
|
47
|
+
|
|
48
|
+
# 3. Push de todo (el tag dispara el build de la GUI)
|
|
49
|
+
git push origin main --follow-tags
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
> No se ejecuta `npm publish` porque no hay cambios en el CLI.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Escenario 3: Solo cambios en el CLI
|
|
57
|
+
|
|
58
|
+
Cuando los cambios fueron exclusivamente en `/src` y no hay nada nuevo en la GUI:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# 1. Compilar el CLI
|
|
62
|
+
npm run build
|
|
63
|
+
|
|
64
|
+
# 2. Bump de versión
|
|
65
|
+
npm version patch # o minor / major según corresponda
|
|
66
|
+
|
|
67
|
+
# 3. Publicar en npm
|
|
68
|
+
npm publish
|
|
69
|
+
|
|
70
|
+
# 4. Push de commits (sin --follow-tags para NO disparar el build de la GUI)
|
|
71
|
+
git push origin main
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
> **Importante:** Se usa `git push origin main` (sin `--follow-tags`) para evitar que el tag dispare un release innecesario de la GUI. Si en el futuro querés generar un release de la GUI con esta misma versión, podés hacer `git push origin v*.*.*` manualmente.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## ¿Qué ocurre después de pushear un tag?
|
|
79
|
+
|
|
80
|
+
1. GitHub intercepta el tag `v*.*.*` y automáticamente arranca la [GitHub Action programada](.github/workflows/release.yml).
|
|
81
|
+
2. La Action levanta dos entornos virtuales en los servidores de GitHub (uno con Windows y otro con Ubuntu).
|
|
82
|
+
3. Automáticamente ingresa a la carpeta `/gui`, instala dependencias, **sincroniza la versión del tag en `gui/package.json`**, compila el framework y genera los instaladores `.exe` (NSIS para Windows) y `.AppImage` (para Linux).
|
|
83
|
+
4. La Action crea la entrada en la sección **Releases** de este repositorio y sube ambos binarios como *assets*.
|
|
84
|
+
5. A partir de ese momento, los botones de la Landing Page empezarán a servir automáticamente esta nueva versión.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
vtex-css-sanitizer es una herramienta
|
|
10
|
+
vtex-css-sanitizer es una herramienta diseñada para limpiar y optimizar las hojas de estilo en proyectos de **VTEX IO**. Analiza tu base de código para encontrar clases CSS huérfanas y declaraciones `blockClass` sin uso, ayudándote a mantener tu proyecto limpio, performante y fácil de mantener. Disponible como **Aplicación de Escritorio (GUI)** o como herramienta de **Línea de Comandos (CLI)**.
|
|
11
11
|
|
|
12
12
|
---
|
|
13
13
|
|
|
@@ -23,22 +23,35 @@ Estos restos de código aumentan el tamaño de los bundles y hacen que la base d
|
|
|
23
23
|
### ✨ Características
|
|
24
24
|
|
|
25
25
|
- **Análisis Bidireccional:** Encuentra tanto CSS sin `blockClass` como `blockClass` sin CSS.
|
|
26
|
-
- **
|
|
26
|
+
- **Doble Interfaz:** Utilizalo desde tu terminal preferida (CLI) o a través de nuestra moderna Aplicación de Escritorio (GUI).
|
|
27
|
+
- **Limpieza Interactiva:** El proceso guiado te permite decidir qué se elimina y qué se conserva regla por regla.
|
|
27
28
|
- **Inteligente:** Reconoce las clases de estado dinámicas de VTEX (ej. `--isActive`) y solo valida el `blockClass` principal.
|
|
28
29
|
- **Seguro:** Ignora automáticamente los archivos CSS de componentes React custom para evitar falsos positivos.
|
|
29
30
|
- **Informes Detallados:** Genera informes en formato Markdown de cada análisis y sesión de limpieza para un registro histórico.
|
|
30
31
|
|
|
31
|
-
### 📦 Instalación
|
|
32
|
+
### 📦 Descargas e Instalación
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
Elegí la versión que mejor se adapte a tu necesidad:
|
|
35
|
+
|
|
36
|
+
#### 1. Versión GUI (Aplicación de Escritorio)
|
|
37
|
+
|
|
38
|
+
Interfaz visual intuitiva para analizar y limpiar tu proyecto sin tocar la terminal.
|
|
39
|
+
- **[Descargar para Windows (.exe)](https://github.com/emanueleelias/vtex-css-sanitizer/releases/latest)**
|
|
40
|
+
- **[Descargar para Linux (.AppImage)](https://github.com/emanueleelias/vtex-css-sanitizer/releases/latest)**
|
|
41
|
+
|
|
42
|
+
*(Los binarios se encuentran en la sección "Assets" de cada Release).*
|
|
43
|
+
|
|
44
|
+
#### 2. Versión CLI (Línea de Comandos)
|
|
45
|
+
|
|
46
|
+
Ideal para integrar en workflows de desarrollo. Para usar la herramienta en cualquier proyecto local, instálala globalmente vía npm:
|
|
34
47
|
|
|
35
48
|
```bash
|
|
36
49
|
npm install -g vtex-css-sanitizer-cli
|
|
37
50
|
```
|
|
38
51
|
|
|
39
|
-
### 🚀 Uso
|
|
52
|
+
### 🚀 Uso (Versión CLI)
|
|
40
53
|
|
|
41
|
-
Navega a la carpeta raíz de tu proyecto VTEX IO y ejecuta los siguientes comandos.
|
|
54
|
+
Navega a la carpeta raíz de tu proyecto VTEX IO y ejecuta los siguientes comandos. *(Nota: La versión GUI proporciona botones visuales equivalentes a estos comandos).*
|
|
42
55
|
|
|
43
56
|
#### 1. Analizar el Proyecto (`analyze`)
|
|
44
57
|
|