Skip to content

Configuration

Vite Plugin Symfony

Afin de conserver un maximum de flexibilité, j'ai décidé de ne pas créer de couche d'abstraction par dessus le fichier de configuration vite.config.js.

js
// vite.config.js
import {defineConfig} from "vite";
import symfonyPlugin from "vite-plugin-symfony";

export default defineConfig({
    plugins: [
        symfonyPlugin(),
    ],

    build: {
        rollupOptions: {
            input: {
                 /* relatif à l'option root */
                app: "./assets/app.ts",

                /* vous pouvez également fournir des fichiers [s]css */
                theme: "./assets/theme.scss"
            },
        }
    },
});

La seule option requise est build.rollupOptions.input. Avec vite-plugin-symfony cette option doit être définie en tant qu'objet.

ts
export type InputOption = {
  // entryAlias sera utilisé par nos fonctions Twig
  [entryAlias: string]: string;
};

si vous avez un thème contenant uniquement des règles css (pas de js) il peut être intéressant de définir un point d'entrée avec un fichier [s]css. cela permettra notamment d'empêcher le FOUC lors du développement.

Afin de faciliter l'utilisation de Vite sans configuration, l'extension préconfigure certaines options de Vite si celles-ci n'ont pas encore été définies. (voir code source)

Voici un extrait intéressant du code source du plugin où vous pouvez voir comment les options vite sont préconfigurées.

ts
// vite-plugin-symfony/src/index.ts
config(userConfig) {

  const extraConfig: UserConfig = {
    base: userConfig.base ?? "/build/",
    publicDir: false,
    build: {
      manifest: true,
      outDir: userConfig.build?.outDir ?? "public/build",
    },
    optimizeDeps: {
      // Définir sur true pour anticiper le chargement des dépendances.
      force: true,
    },
  };

  return extraConfig;
}

Pour toutes les options disponibles, vous pouvez consulter la page Référence : Vite plugin Symfony.

Changer le nom du dossier de build.

si vous souhaitez spécifier un autre nom de dossier pour construire vos fichiers, vous devrez changer quelques options.

js
// vite.config.js
export default defineConfig({
  base: '/custom-build/', 
  plugins: [
    symfonyPlugin(),
  ],

  build: {
    outDir: 'public/custom-build', 

    rollupOptions: {
      input: {
        "app": "./assets/app.js",
      },
    },

  },
});

Vous devrez ensuite créer un fichier de configuration pentatrion_vite.yaml pour que pentatrion/vite-bundle soit en accord avec votre configuration js.

yaml
#config/packages/pentatrion_vite.yaml
pentatrion_vite:
  build_directory: custom-build

Pour consulter la liste de toutes les options disponibles, vous pouvez vous rendre sur la page Référence : Vite Bundle.

Publié sous la licence MIT.