As part of the compilation of web resources (JavaScript, CSS, etc.), Laravel Mix is an excellent Webpack-based tool with a smooth and easy-to-use interface.
For long-term caching, Laravel Mix offers the mix.version() method which automatically generates an alphanumeric code (hashcode) for each resource and generates the manifest file mix-manifest.json.
Laravel users have at their disposal a global Blade function called mix which takes as parameter the name of the resource (e.g. app.js) and adds its unique code (e.g. app.js?id=0441ad4f65d54589aea5)
With Symfony the equivalent function is asset. For it to work with Laravel Mix, however, an important change must be made in the configuration file framework.yaml of Symfony:
framework:
# ...
assets:
json_manifest_path: '%kernel.project_dir%/public/mix-manifest.json'
# ...
It is also important to adjust the public path in Laravel Mix with the command mix.setPublicPath('public').