Vite bundle options
La configuration du bundle se fait dans le fichier config/packages/pentatrion_vite.yaml
.
pentatrion_vite:
public_directory: public
build_directory: build
throw_on_missing_entry: true
# etc...
public_directory
- Type :
string
- Valeur par défaut :
public
Chemin relatif depuis le dossier racine de votre projet vers le dossier public de votre serveur web. Dans certains cas il peut s'agir de www
ou public_html
.
build_directory
- Type :
string
- Valeur par défaut :
build
Chemin relatif depuis votre dossier public dans lequel ont été compilés vos fichiers à la suite d'un vite build
.
proxy_origin
- Type :
null | string
- Valeur par défaut :
null
Lors d'une utilisation avec Docker, vous pouvez désirer spécifier une origine différente si vous démarrer votre serveur de développement Vite en dehors de votre conteneur Docker. (ex: http://host.docker.internal:5173
).
absolute_url
- Type :
boolean
- Valeur par défaut :
false
Génère des URL complètes de vos fichiers js/css/assets générés (schema + domaine + chemin).
throw_on_missing_asset
- Type :
boolean
- Valeur par défaut :
true
Par défaut, vite-bundle lèvera une exception si vous utilisez la function Twig asset()
avec un chemin qui n'est pas présent dans le fichier manifest.json
, dans certains cas des plugins peuvent copier des fichiers statiques sans qu'ils ne soient référencés dans le manifeste, vous devrez donc assigner la valeur à false
pour pouvoir y faire référence.
import { defineConfig } from 'vite'
import symfonyPlugin from 'vite-plugin-symfony';
import { viteStaticCopy } from 'vite-plugin-static-copy'
export default defineConfig({
plugins: [
viteStaticCopy({
targets: [
{
src: "assets/images/angular.svg",
dest: "static"
}
]
}),
symfonyPlugin(),
],
// ...
});
# config/packages/framework.yaml
framework:
assets:
version_strategy: 'Pentatrion\ViteBundle\Asset\ViteAssetVersionStrategy'
<img src="{{ asset('static/angular.svg')}}" />
throw_on_missing_entry
- Type :
boolean
- Valeur par défaut :
false
Par défaut, vite-bundle ignorera silencieusement vos appels à des points d'entrée qui ne sont pas présents dans votre entrypoints.json
. En définissant cette option à true
, Symfony lèvera une exception dans de tels cas.
cache
- Type :
boolean
- Valeur par défaut :
false
Active le mise en cache des fichiers entrypoinst.json
et manifest.json
. Ne doit être activé qu'en production.
# config/packages/pentatrion_vite.yaml
when@prod:
pentatrion_vite:
cache: true
La création d'un cache optimal se fait dans l'étape de warm-up (sinon un cache php sera créé par fichier).
npm run build
# vide le cache et effectue un warm-up
# important cette étape doit avoir lieu après le `npm run build`
symfony console cache:clear
Pour plus d'informations voir la section performances.
preload
- Type :
"none"
|"link-tag"
|"link-header"
- Valeur par défaut :
link-tag
Définit la stratégie de préchargement de vos fichiers.
Avec "link-tag"
, vos dépendances JS seront préchargées en utilisant une balise <link rel="modulepreload">
.
Avec "link-header"
, préchargez automatiquement tous les scripts rendus et les balises de lien via l'en-tête http2 Link. Nécessite le composant Symfony symfony/web-link.
Pour plus de détail, voir la section performances.
crossorigin
- Type :
false
|true
|"anonymous"
|"use-credentials"
- Valeur par défaut :
true
Si vous précisez cette option, un attribut crossorigin
sera ajouté à toutes les balises : <script>
, <link rel="stylesheet">
, <link rel="modulepreload">
et les balises internes de Vite.
Si vous avez spécifié une configuration multiple avec configs
, cette option sera appliquée à toutes vos configurations.
script_attributes
- Type :
associative array
- Valeur par défaut :
[]
Précisez ici vos attributs que vous souhaiterez faire apparaître sur toutes vos balises HTML <script>
. Remarque: les balises <script>
spécifiques à Vite JS comme <script type="module" src="http://127.0.0.1:5176/build/@vite/client"></script>
ne seront pas affectées.
pentatrion_vite:
script_attributes:
defer: true
referrerpolicy: origin
S'il vous souhaitez tout de même intervenir sur les attributs des balises internes à Vite vous pouvez écouter l'événement : Pentatrion\ViteBundle\Event\RenderAssetTagEvent
, voir attributs personnalisés.
link_attributes
- Type :
associative array
- Valeur par défaut :
[]
Précisez ici les attributs que vous souhaitez faire apparaître sur toutes vos balises HTML <link rel="stylesheet">
(Attention vos balises <link rel="modulepreload">
ne seront pas affectées).
pentatrion_vite:
link_attributes:
referrerpolicy: origin
preload_attributes
- Type :
associative array
- Valeur par défaut :
[]
Précisez ici les attributs que vous souhaitez faire apparaître sur toutes vos balises HTML <link rel="modulepreload">
.
pentatrion_vite:
preload_attributes:
referrerpolicy: origin
default_config
- Type :
null | string
- Valeur par défaut :
null
Si vous avez défini plusieurs configurations de vite.
WARNING
Dans le cas d'une configuration multiple, il faudra laisser les options build_directory
, script_attributes
, link_attributes
et preload_attributes
vides et les définir dans l'option configs
qui va suivre.
configs
- Type :
tableau associatif de configs
- Valeur par défaut :
[]
pentatrion_vite:
default_config: <custom-config-name-1>
configs:
<custom-config-name-1>:
build_directory: build-1
script_attributes:
# etc
link_attributes:
# etc
preload_attributes:
# etc
default_build
- Type :
null | string
- Valeur par défaut :
null
- Déprécié (sera retiré dans les versions 6.x)
WARNING
Cette option est dépréciée, utilisez default_config
à la place.
Si vous avez défini plusieurs configurations de vite.
WARNING
Dans le cas d'une configuration multiple, il faudra laisser les options build_directory
, script_attributes
et link_attributes
vides et les définir dans l'option builds
qui va suivre.
builds
- Type :
tableau associatif de configs
- Valeur par défaut :
[]
- Déprécié (sera retiré dans les versions 6.x)
WARNING
Cette option est dépréciée, utilisez configs
à la place.
pentatrion_vite:
default_build: <custom-build-name-1>
builds:
<custom-build-name-1>:
build_directory: build1
script_attributes:
# etc
link_attributes:
# etc