Las apps de Svelte se compilan a JavaScript mediante Vite, y AfterPack se integra a nivel de bundler, así que @afterpack/svelte es un envoltorio fino: afterpackSvelte(options) es afterpackVite(options), con un nombre pensado para encontrarlo fácilmente en un proyecto Svelte.
¿Compilas una app completa de SvelteKit? Usa @afterpack/sveltekit. ¿Compilas una librería de componentes Svelte con Rollup? Usa @afterpack/rollup.
Instalación
$ npm install -D @afterpack/svelte// vite.config.ts
import { defineConfig } from "vite";
import { svelte } from "@sveltejs/vite-plugin-svelte";
import { afterpackSvelte } from "@afterpack/svelte";
export default defineConfig({
plugins: [svelte(), afterpackSvelte()],
});Colócalo después de svelte(). La exportación con nombre es afterpackSvelte; el paquete también reexporta afterpackVite y el tipo AfterpackViteOptions.
Build
vite build ahora emite salida ofuscada. vite dev no se toca, porque el plugin solo se ejecuta en el generateBundle del build, antes de que Vite escriba el bundle.
Verificación
afterpackSvelte({ protectionMap: { enabled: true } });Escribe el Protection Map combinado en .afterpack/protectionMap.html, ignorado por git. El efecto secundario sobre los source maps y las reglas de manejo son los de @afterpack/vite.
entitlements.js, 54 lines, built at the light preset with a directive around the signature check. Click any token to see what was applied to it.Opciones
Cada clave de configuración se puede pasar aquí como objeto de opciones, que se reenvía tal cual a @afterpack/vite. El alias de tipo AfterpackSvelteOptions es AfterpackViteOptions.
afterpackSvelte({ seed: "git", preset: "medium" });Directivas
Un marcador /* @afterpack … */ dentro de un archivo .svelte no se captura. Pon las directivas en un módulo .ts/.js normal que el componente importe:
// src/lib/license.ts
/* @afterpack preset=hard */
export function verify(token: string) {
// ...
}
/* @afterpack end */Cada chunk emitido se ofusca en cualquier caso; solo la directiva necesita el módulo normal.
Siguiente
- Frameworks: la matriz completa.
- Vite: el plugin que hace el trabajo real.
- SvelteKit: el paquete envoltorio para Kit.
- Protection Map: cómo leer el informe.
- Builds y CI: semillas, desarrollo frente a producción, promocionar los mismos bytes.