Free es la base: el catálogo completo de transformaciones, aplicado de manera uniforme en todo tu bundle, en tu máquina, gratis. Pro es para un bundle que no es uniforme, cuando una verificación de licencia, una rutina de precios o una credencial incrustada vale mucho más que el resto del código a su alrededor.
Pro cambia dónde aterriza la protección y con qué precisión. No cambia la intensidad de ninguna transformación individual. Ambos niveles pueden llevar complexity tan alto como tu presupuesto de tamaño lo permita.
Lo que Free ya te da
No es una prueba limitada. Free ejecuta el pipeline completo: complexity no tiene límite y todos los presets de la escalera están disponibles.
- Todos los presets:
minify(objetivo 0),light(5),medium(7),hard(12),extreme(25), además de cualquier objetivo numérico que definas tú mismo. El predeterminado eslight. - Todas las transformaciones. Reducción de literales, aplanado de flujo de control, predicados opacos, aritmética booleana mixta, bytecode de expresiones enteras, materialización de constantes, profundización de scope, entrelazado entre dependencias.
- Una estructura nueva en cada build. Omite la semilla para obtener una nueva en cada build; fíjala cuando necesites una salida reproducible.
- Todo lo demás que esperarías: Protection Map, source maps, plugins de framework, detección de framework. Sin cuenta, sin clave, sin llamada de red para la ofuscación en sí.
- Fácil de depurar por defecto. Devtools, breakpoints,
console.logy watch expressions siguen funcionando. Consulta Diagnósticos cuando un build reporte algo.
El tamaño de salida crece con el preset; Rendimiento tiene los tamaños medidos. Pro te permite gastar ese tamaño solo donde vale la pena, en lugar de subir el preset para todo el bundle.
Lo que aporta Pro
Protección que puedes dirigir
En Free, tu configuración se aplica por igual a cada nodo del bundle. En Pro, una región marcada anula tu configuración global.
En la práctica eso significa que puedes dejar el bundle en light para builds rápidos y salida pequeña, y aun así poner extreme en las veinte líneas que realmente importan:
/* @afterpack preset=hard */
function verifyLicense(token) {
// raised to complexity target 12, string floor forced on
}
/* @afterpack end */
/* @afterpack skip */
function debugPanel() {
// target 0, floor off — left alone
}
/* @afterpack end */Las regiones provienen de comentarios de bloque @afterpack. El plugin lee las directivas desde tu código fuente.
Lo que una directiva puede definir: cualquier opción que aplique por región.
El plugin que hace la lectura es @afterpack/next, @afterpack/vite, @afterpack/webpack o el resto. Un build Pro ejecutado con npx afterpack@latest <path> obtiene la protección Pro en todo el bundle, sin regiones: la CLI se ejecuta sobre la salida del build, donde los comentarios ya no están, así que no lee directivas y rechaza directives.enabled.
Refuerzo para rutas de licencia y pago
Dos protecciones que puedes activar y que los builds de Free no aplican:
| Ajuste | Qué hace por ti |
|---|---|
transforms.selfIntegrity.enabled | Añade una comprobación sobre su propia tabla de comprobación y solo detecta cambios en esa tabla. Un cambio en otra parte de tu código no se detecta. Sin cambios, no altera nada. |
transforms.comparisonHardening.enabled | Una comparación de igualdad de cadenas se convierte en una verificación de digest unidireccional, así que el literal con el que comparas está completamente ausente del artefacto. |
Ambos están desactivados por defecto. Reconocer un patrón de reflexión marcado funciona igual en cualquiera de los dos niveles: reflection.allow en tu configuración. No se puede definir por directiva.
Los builds corren en la infraestructura de AfterPack
Una key enruta los archivos de tu build hacia la nube de AfterPack, que devuelve la salida protegida a medida que cada archivo termina. Nada extra que instalar, y nada que mantener actualizado.
El código fuente se procesa en memoria y no se almacena. Consulta Modos de despliegue para ver qué cambia cuando el motor se mueve.
Un registro de cada build
Un build en la nube es un build registrado. AfterPack guarda el Protection Map de ese build junto con una fila de métricas resumidas, para que el panel pueda mostrar el mapa, los diagnósticos y los tiempos de cualquier build reciente. Esto responde "¿ese release realmente quedó protegido?" sin volver a ejecutar nada. El almacenamiento es por proyecto y se puede desactivar. La retención es un año y los últimos 500 builds por proyecto, lo que se cumpla primero. El uso se mide por megabyte. Consulta Lo que cuesta Pro.
La matriz completa de capacidades, nivel por nivel, está en Planes y niveles.
Lo que cuesta Pro
Pro mide el uso, no los puestos. Lo que compras son MB de JavaScript que procesa el motor en la nube: no builds, no archivos, no solicitudes. Todos los niveles, incluido Free, tienen miembros ilimitados en el espacio de trabajo.
Una clave de Pro enruta todo tu bundle de cliente a través del motor en la nube, y cada byte que procesa se mide, incluido el código fuera de tus regiones marcadas. Un bundle de cliente de Next.js de 1.5 MB usa 1.5 MB de la asignación mensual en cada build.
Hay tres formas de obtener capacidad Pro:
- Free, registrado: 10 MB al mes, sin tarjeta. Suficiente para probar las funciones quirúrgicas en un bundle real y comparar la salida. Consulta Cuentas.
- Extra MB: $5 por 20 MB, pago único. Nunca caduca, nunca se renueva automáticamente, y comprar uno no inicia una suscripción. Un proyecto que publica un release cada pocas semanas puede funcionar solo con recargas.
- Un plan, desde $49/mes, una vez que el volumen lo hace más barato. Indie incluye 500 MB al mes, Team 3 GB, Studio 8 GB, cada uno con exceso automático por MB para que un sprint intenso no haga fallar el CI. Indie y Team incluyen una prueba de 14 días.
Un build consume la asignación del plan, luego el Extra MB, luego el exceso, en ese orden, así que una recarga queda detrás de tu asignación mensual en lugar de gastarse primero. Los precios, los límites de proyecto, las tarifas de exceso y el tope de gasto están en Planes y niveles.
Como referencia, un bundle de SPA de producción típico va de unos cientos de KB a un par de MB. Los 10 MB gratuitos cubren varios builds reales, y los 500 MB de Indie cubren unos cuantos cientos.
Próximamente
No disponible hoy. Estos son los elementos de Pro en el roadmap público, que es donde AfterPack indica qué viene, sin fechas.
| Capacidad | Qué añadiría |
|---|---|
| Ofuscación entre módulos | Entrelazado a través de los límites de módulo en lugar de dentro de un solo archivo. |
| Encubrimiento del transporte de red | Un códec por build para tus solicitudes y respuestas de API en el cable. |
| Source maps gestionados | Trazas de pila de producción simbolizadas mediante una consulta autenticada, sin publicar nunca un mapa. |
Qué hace un ajuste exclusivo de Pro en un build de Free
Un build de Free se detiene ante una directiva por región que aumenta la protección en lugar de aplicar menos protección de la que pedía el código fuente, e ignora cualquier otra directiva. Los dos ajustes de refuerzo de arriba simplemente no se aplican. Un build de Pro que no puede alcanzar la nube falla de forma segura.
Siguiente
- Modos de despliegue: dónde se ejecuta cada nivel y qué significa en la práctica fallar de forma segura.
- Referencia de la Cloud API: el contrato de comunicación detrás de cada build de Pro.
- Niveles: precios, asignaciones de MB y cuándo conviene cada plan.
- Protection Map: qué muestra el mapa de un build y dónde se guarda. Abre la demo en vivo.
- Directivas: la gramática completa de los marcadores de región de arriba.
- Configuración: cada clave, flag, variable y directiva en un solo lugar.
- Builds en el panel: cómo se ve después un build en la nube registrado.