Vite bundle options
The configuration of the bundle is located in the file config/packages/pentatrion_vite.yaml.
pentatrion_vite:
public_directory: public
build_directory: build
throw_on_missing_entry: true
# etc...public_directory
- Type:
string - Default value:
public
Path to the web root relative to the Symfony project root directory. In some cases it may be www or public_html.
build_directory
- Type:
string - Default value:
build
Path to your compiled files relative to the web root directory.
proxy_origin
- Type:
null | string - Default value:
null
When using Docker, you may want to specify a different origin if you start your Vite development server outside of your Docker container. (eg. http://host.docker.internal:5173).
absolute_url
- Type :
boolean - Default value :
false
Generates full URLs of your generated js/css/assets files (schema + domain + path).
throw_on_missing_asset
- Type:
boolean - Default value:
true
By default, vite-bundle will throw an exception if you use the Twig asset() function with a path that is not present in the manifest.json file, in some cases plugins can copy static files without them being referenced in the manifest, you will need to set the value to false to be able to use them.
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 - Default value:
false
By default, vite-bundle will silently ignore your calls to entry points that are not present in your entrypoints.json. By setting this option to true, Symfony will throw an exception in such cases.
cache
- Type :
boolean - Default value :
false
Enables caching of entrypoinst.json and manifest.json files. Should only be enabled in production.
# config/packages/pentatrion_vite.yaml
when@prod:
pentatrion_vite:
cache: trueThe creation of an optimal cache is done in the warm-up step (otherwise a php cache will be created per file).l'étape de warm-up
npm run build
# clear the cache and perform a warm-up
# important this step must take place after the `npm run build`
symfony console cache:clearFor more information see the performance.
preload
- Type :
"none"|"link-tag"|"link-header" - Default value :
link-tag
Defines the strategy for preloading your files.
With "link-tag", your JS dependencies will be preloaded using a <link rel="modulepreload"> tag.
With "link-header", automatically preload all rendered scripts and link tags via the http2 Link header. Requires the Symfony component symfony/web-link.
For more details, see the performance section.
crossorigin
- Type :
false|true|"anonymous"|"use-credentials" - Default value :
true
If you specify this option, a crossorigin attribute will be added to all tags: <script>, <link rel="stylesheet">, <link rel="modulepreload"> and internal tags of Vite.
If you specified multiple configuration with configs, this option will be applied to all of your configurations.
script_attributes
- Type:
associative array - Default value:
[]
Specify here your attributes that you want to appear on all your HTML <script> tags. Note: Vite JS internal <script> tags like <script type="module" src="http://127.0.0.1:5176/build/@vite/client"></script> will not be affected.
pentatrion_vite:
script_attributes:
defer: true
referrerpolicy: originIf you still want to work on the attributes of Vite's internal tags, you can listen to the event: Pentatrion\ViteBundle\Event\RenderAssetTagEvent, see custom attributes.
link_attributes
- Type:
associative array - Default value:
[]
Specify here the attributes that you want to appear on all your HTML <link rel="stylesheet"> tags (Please note your <link rel="modulepreload"> tags will not be affected).
pentatrion_vite:
link_attributes:
referrerpolicy: originpreload_attributes
- Type :
associative array - Default value :
[]
Specify here the attributes you want to appear on all your HTML tags <link rel="modulepreload">.
pentatrion_vite:
preload_attributes:
referrerpolicy: origindefault_config
- Type:
null | string - Default value:
null
If you have defined several Vite configurations.
WARNING
In the case of a multiple configuration, it will be necessary to leave empty the build_directory, script_attributes link_attributes and preload_attributes options and define them in the configs option which will follow.
configs
- Type:
associative array of build config - Default value:
[]
pentatrion_vite:
default_config: <custom-build-name-1>
builds:
<custom-build-name-1>:
build_directory: config1
script_attributes:
# etc
link_attributes:
# etc
preload_attributes:
# etcdefault_build
- Type:
null | string - Default value:
null - Deprecated (will be removed in v6.x)
WARNING
This option is deprecated, use default_config instead.
If you have defined several Vite configurations.
WARNING
In the case of a multiple configuration, it will be necessary to leave the build_directory, script_attributes and link_attributes options empty and define them in the builds option which will follow.
builds
- Type:
associative array of build config - Default value:
[] - Deprecated (will be removed in v6.x)
WARNING
This option is deprecated, use configs instead.
pentatrion_vite:
default_build: <custom-build-name-1>
builds:
<custom-build-name-1>:
build_directory: build1
script_attributes:
# etc
link_attributes:
# etc