vtex-css-sanitizer-cli 1.0.5 → 1.0.7
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 +68 -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,68 @@
|
|
|
1
|
+
# Guía de Publicación y Releases
|
|
2
|
+
|
|
3
|
+
Este repositorio actúa como un monorepo que contiene 3 proyectos independientes que conviven juntos. Cada uno tiene su propio flujo de publicación y distribución:
|
|
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 detalla cómo trabajar con cada uno de ellos cuando hay cambios.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## 1. CLI (NPM Package)
|
|
12
|
+
|
|
13
|
+
La versión de línea de comandos se encuentra en la raíz del proyecto (`/src`) y se distribuye a través del registro de `npm` (`vtex-css-sanitizer-cli`).
|
|
14
|
+
|
|
15
|
+
**Cómo publicar una nueva versión:**
|
|
16
|
+
|
|
17
|
+
1. Realiza tus cambios o correcciones en la carpeta `/src`.
|
|
18
|
+
2. Asegúrate de compilar el código TypeScript:
|
|
19
|
+
```bash
|
|
20
|
+
npm run build
|
|
21
|
+
```
|
|
22
|
+
3. Actualiza la versión en el `package.json` de la raíz del proyecto. Puedes usar el comando de npm para que te genere el commit y el tag automáticamente:
|
|
23
|
+
```bash
|
|
24
|
+
npm version patch # Para fixes menores (ej: 1.0.4 -> 1.0.5)
|
|
25
|
+
npm version minor # Para nuevas funciones (ej: 1.0.4 -> 1.1.0)
|
|
26
|
+
npm version major # Para cambios que rompen compatibilidad (ej: 1.0.4 -> 2.0.0)
|
|
27
|
+
```
|
|
28
|
+
4. Publica el paquete en npm (requiere estar logueado previamente con `npm login` si no lo estás):
|
|
29
|
+
```bash
|
|
30
|
+
npm publish
|
|
31
|
+
```
|
|
32
|
+
5. Empuja los commits y tags generados al repositorio remoto:
|
|
33
|
+
```bash
|
|
34
|
+
git push origin main --follow-tags
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. GUI (Aplicación de Escritorio)
|
|
40
|
+
|
|
41
|
+
La aplicación con interfaz gráfica y Electron se encuentra completamente autocontenida en la carpeta `/gui`. Las actualizaciones de esta aplicación se distribuyen a través de la pestaña de **Releases** en GitHub.
|
|
42
|
+
|
|
43
|
+
Los botones de "Descargar para Windows" o "Descargar para Linux" en la Landing Page siempre apuntan al tag especial genérico de `/releases/latest` en GitHub, garantizando que los usuarios siempre descarguen la versión más reciente publicada.
|
|
44
|
+
|
|
45
|
+
**Cómo generar y publicar una nueva versión de la GUI:**
|
|
46
|
+
|
|
47
|
+
1. Realiza y prueba tus cambios dentro de la carpeta `/gui`.
|
|
48
|
+
2. Haz commit y push de los cambios a la rama `main`:
|
|
49
|
+
```bash
|
|
50
|
+
git add gui/
|
|
51
|
+
git commit -m "feat(gui): nueva funcionalidad"
|
|
52
|
+
git push origin main
|
|
53
|
+
```
|
|
54
|
+
3. **Dispara la creación del Release en GitHub creando un tag Git:**
|
|
55
|
+
Debes crear un tag en Git que comience con la letra `v` apuntando a la versión que quieres publicar:
|
|
56
|
+
```bash
|
|
57
|
+
git tag v1.0.7
|
|
58
|
+
git push origin v1.0.7
|
|
59
|
+
```
|
|
60
|
+
*(También puedes empujar tus tags de una vez usando `git push origin main --tags`)*
|
|
61
|
+
|
|
62
|
+
**¿Qué ocurre después de pushear el tag en Git?**
|
|
63
|
+
|
|
64
|
+
1. GitHub intercepta el tag `v*.*.*` y automáticamente arranca la [GitHub Action programada](.github/workflows/release.yml).
|
|
65
|
+
2. La Action levanta dos entornos virtuales en los servidores de GitHub (uno con Windows y otro con Ubuntu).
|
|
66
|
+
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).
|
|
67
|
+
4. La Action crea la entrada en la sección **Releases** de este repositorio y sube ambos binarios como *assets*.
|
|
68
|
+
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
|
|