Uma ferramenta de construção amigável focada em jamstack para aplicativos esbeltos
Criei esse utilitário para configurações de construção de andaimes para meus projetos esbeltos. Como me concentro em sites estáticos modernos e aplicativos do lado do cliente que podem ser implantados com o Netlify, o Sapper inclui muita infraestrutura para o desenvolvimento do lado do servidor que eu não preciso. O kit esbelto está chegando como um substituto da próxima geração para o Sapper, mas pode não estar pronto para a produção no futuro imediato, então manterei essa ferramenta da CLI até que eu tenha uma substituição sólida.
Aqui estão alguns dos recursos que svelte-render
adiciona na parte superior de uma configuração de rollup inicial:
require()
! npm i @metamodern/svelte-render
O script da CLI é lançado apenas como um módulo ES. A versão mínima node.js é 14 (LTS mais recente na data de lançamento).
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
As opções podem ser especificadas usando um arquivo de configuração. O arquivo deve usar a sintaxe de importação/exportação do módulo ES. Sua exportação padrão deve ser uma função que pega um objeto que contenha opções de linha de comando como seu raio e retorna um objeto que especifica opções adicionais para passar para a função de renderização.
Espera -se que o arquivo de configuração seja encontrado em ./render.config.js
(em relação ao context
), mas um caminho personalizado pode ser especificado na linha de comando, como mostrado acima.
Veja abaixo uma lista de todas as opções que podem ser passadas para a função de renderização.
A API JavaScript é liberada apenas como um módulo ES. Commonjs require()
não é suportado.
A exportação padrão do módulo é uma função com os seguintes 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: O argumento context
é necessário apenas ao usar a API JavaScript. Ao usar o script da CLI, os padrões context
para process.cwd()
.
As seguintes opções podem ser especificadas como nomes ou caminhos de arquivos e serão resolvidas em relação ao context
.
entry
e fonte client
dist
development
está ligada)client
como false
e não use o sinalizador development
) <style>
development
seja passada) rollup-plugin-svelte
(sob a chave compilerOptions
)rollup-plugin-svelte
(sob a chave de preprocess
)rollup-plugin-svelte
rollup-plugin-terser
Nota: essas opções são ignoradas quando transpile
é definida como false
Os ganchos de renderização são funções para executar em conjunto com a principal função de renderização. Cada função será passada no context
resolvido e no objeto de opções completas. Funções assíncronas são suportadas.
© 2020 Daniel C. Narey
Licença ISC