Una amigable herramienta de compilación centrada en Jamstack para las aplicaciones Svelte
Creé esta utilidad para configuraciones de compilación de andamios para mis proyectos SVELTE. Debido a que me concentro en sitios estáticos modernos y aplicaciones del lado del cliente que se pueden implementar con Netlify, Sapper incluye una gran cantidad de infraestructura para el desarrollo del lado del servidor que no necesito. El kit Svelte está a la vuelta de la esquina como un reemplazo de próxima generación para Safer, pero puede que no esté listo para la producción en el futuro inmediato, por lo que mantendré esta herramienta CLI hasta que tenga un reemplazo sólido.
Estas son algunas de las características que svelte-render
agrega encima de una configuración de inicio:
require()
! npm i @metamodern/svelte-render
El script CLI se lanza solo como un módulo ES. La versión mínima de node.js es 14 (último LTS a partir de la fecha de lanzamiento).
npx svelte-render [context] [--key = value]
# default to process.cwd() as context
cd project
npx svelte-render [--key = value]
# skip production optimizations
npx svelte-render --development
# just output HTML from the entry file
npx svelte-render --client=0 --noCss
# specify a custom directory structure
npx svelte-render --src=. --dist=public
# specify the path to your config file
# ** if not at ./render.config.js **
npx svelte-render --configFile=./config/svelte-render.js
Las opciones se pueden especificar utilizando un archivo de configuración. El archivo debe usar la sintaxis de importación/exportación del módulo ES. Su exportación predeterminada debe ser una función que tome un objeto que contenga opciones de línea de comandos como su rango y devuelve un objeto que especifica opciones adicionales para pasar a la función de representación.
Se espera que el archivo de configuración se encuentre en ./render.config.js
(relativo al context
), pero se puede especificar una ruta personalizada desde la línea de comando como se muestra anteriormente.
Consulte a continuación una lista de todas las opciones que se pueden pasar a la función de representación.
La API JavaScript se lanza solo como un módulo ES. CommonJs require()
no es compatible.
La exportación predeterminada del módulo es una función con los siguientes parámetros:
async function ( context : string , {
src = 'src' ,
assets = 'assets' ,
dist = 'dist' ,
entry = 'index.svelte' ,
client = 'client.js' ,
noCss = false ,
development = false ,
transpile = ! development ,
rollupInputPlugins = [ ] ,
rollupInputOptions = { } ,
compilerOptions = { } ,
sveltePreprocess = { } ,
svelteOptions = { } ,
terserOptions = { } ,
browsers = 'defaults' ,
babelPresets = [ [ '@babel/preset-env' , {
targets : browsers ,
corejs : 3 ,
useBuiltIns : 'usage' ,
} ] ] ,
babelPlugins = [ ] ,
babelOptions = { } ,
before ,
onRender ,
after ,
} = { } ) : Promise < number > // returns 0 on success
Nota: El argumento context
solo se requiere cuando se usa la API JavaScript. Cuando se usa el script CLI, context
predeterminado es process.cwd()
.
Las siguientes opciones pueden especificarse como nombres o rutas de archivo y se resolverán en relación con context
.
entry
y fuente client
dist
development
está encendido)client
en false
y no use el indicador development
) <style>
development
) rollup-plugin-svelte
(debajo de la tecla compilerOptions
)rollup-plugin-svelte
(debajo de la tecla preprocess
)rollup-plugin-svelte
rollup-plugin-terser
NOTA: Estas opciones se ignoran cuando transpile
se establece en false
Los ganchos de renderizado son funciones para ejecutar en conjunto con la función de renderizado principal. Cada función se pasará por el context
resuelto y el objeto de opciones completas. Las funciones de Async son compatibles.
© 2020 Daniel C. Narey
Licencia ISC