Un outil de construction axé sur le Jamstack pour les applications Svelte
J'ai créé cet utilitaire pour échafauder des configurations de création pour mes projets svelte. Parce que je me concentre sur les sites statiques modernes et les applications côté client qui peuvent être déployées avec Netlify, Sapper comprend beaucoup d'infrastructures pour le développement côté serveur dont je n'ai pas besoin. Le kit Svelte est au coin de la rue en tant que remplacement de nouvelle génération pour Sapper, mais il peut ne pas être prêt pour la production dans un avenir immédiat, donc je maintiendrai cet outil CLI jusqu'à ce que j'aie un remplacement solide.
Voici quelques-unes des fonctionnalités que svelte-render
Ajoute au-dessus d'une configuration de démarrage:
require()
! npm i @metamodern/svelte-render
Le script CLI est publié uniquement en tant que module ES. La version minimale Node.js est 14 (dernier LTS à partir de la date de sortie).
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
Les options peuvent être spécifiées à l'aide d'un fichier de configuration. Le fichier doit utiliser la syntaxe d'importation / exportation des modules ES. Son exportation par défaut doit être une fonction qui prend un objet contenant des options de ligne de commande comme son arugment et renvoie un objet spécifiant des options supplémentaires pour passer à la fonction de rendu.
Le fichier de configuration devrait être trouvé sur ./render.config.js
(par rapport au context
), mais un chemin personnalisé peut être spécifié à partir de la ligne de commande comme indiqué ci-dessus.
Voir ci-dessous pour une liste de toutes les options qui peuvent être transmises à la fonction de rendu.
L'API JavaScript est publiée uniquement sous forme de module ES. CommonJS require()
n'est pas pris en charge.
L'exportation par défaut du module est une fonction avec les paramètres suivants:
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
Remarque: L'argument context
n'est requis que lors de l'utilisation de l'API JavaScript. Lorsque vous utilisez le script CLI, context
est par défaut process.cwd()
.
Les options suivantes peuvent être spécifiées sous forme de noms de fichiers ou de chemins et seront résolues par rapport au context
.
entry
et des fichiers source client
dist
development
est allumé)client
sur false
et ne pas utiliser l'indicateur development
) <style>
development
est passé) rollup-plugin-svelte
(sous la clé compilerOptions
)rollup-plugin-svelte
(sous la clé preprocess
)rollup-plugin-svelte
rollup-plugin-terser
Remarque: ces options sont ignorées lorsque transpile
est définie sur false
Les crochets de rendu sont des fonctions à exécuter en tandem avec la fonction de rendu principale. Chaque fonction sera répercutée sur le context
résolu et l'objet d'options complet. Les fonctions asynchrones sont prises en charge.
© 2020 Daniel C. Narey
Licence ISC