chore : Simplification de la conf webpack
Cadoles/hydra-sql/pipeline/pr-develop There was a failure building this commit Details

This commit is contained in:
Valentin Carroy 2024-10-23 12:11:46 +02:00
parent 5a59383cdd
commit 6a815be853
3 changed files with 12 additions and 88 deletions

View File

@ -2,53 +2,10 @@ webpack_encore:
# The path where Encore is building the assets - i.e. Encore.setOutputPath() # The path where Encore is building the assets - i.e. Encore.setOutputPath()
# If multiple builds are defined (as shown below), you can disable the default build: # If multiple builds are defined (as shown below), you can disable the default build:
# output_path: false # output_path: false
output_path: false output_path: "%kernel.project_dir%/public/build"
builds:
appConfig: '%kernel.project_dir%/public/build/app'
themeConfig: '%kernel.project_dir%/public/build/theme'
# Set attributes that will be rendered on all script and link tags # Set attributes that will be rendered on all script and link tags
script_attributes: script_attributes:
defer: true defer: true
# Uncomment (also under link_attributes) if using Turbo Drive # Uncomment (also under link_attributes) if using Turbo Drive
# https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change # https://turbo.hotwired.dev/handbook/drive#reloading-when-assets-change
# 'data-turbo-track': reload # 'data-turbo-track': reload
# link_attributes:
# Uncomment if using Turbo Drive
# 'data-turbo-track': reload
# If using Encore.enableIntegrityHashes() and need the crossorigin attribute (default: false, or use 'anonymous' or 'use-credentials')
# crossorigin: 'anonymous'
# Preload all rendered script and link tags automatically via the HTTP/2 Link header
# preload: true
# Throw an exception if the entrypoints.json file is missing or an entry is missing from the data
# strict_mode: false
# If you have multiple builds:
# builds:
# frontend: '%kernel.project_dir%/public/frontend/build'
# pass the build name as the 3rd argument to the Twig functions
# {{ encore_entry_script_tags('entry1', null, 'frontend') }}
# Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# Put in config/packages/prod/webpack_encore.yaml
# cache: true
framework:
assets:
packages:
app:
json_manifest_path: '%kernel.project_dir%/public/build/app/manifest.json'
theme:
json_manifest_path: '%kernel.project_dir%/public/build/theme/manifest.json'
#when@prod:
# webpack_encore:
# # Cache the entrypoints.json (rebuild Symfony's cache when entrypoints.json changes)
# # Available in version 1.2
# cache: true
#when@test:
# webpack_encore:
# strict_mode: false

View File

@ -4,18 +4,18 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>{% block title %}Welcome!{% endblock %}</title> <title>{% block title %}Welcome!{% endblock %}</title>
{% block stylesheets %} {% block stylesheets %}
{{ encore_entry_link_tags('app', null, 'appConfig') }} {{ encore_entry_link_tags('app') }}
{{ encore_entry_link_tags('bootstrap-css', null, 'appConfig') }} {{ encore_entry_link_tags('bootstrap-css') }}
{{ encore_entry_link_tags('theme', null, 'themeConfig') }} {{ encore_entry_link_tags('theme') }}
{% endblock %} {% endblock %}
</head> </head>
<body> <body>
{% block body %}{% endblock %} {% block body %}{% endblock %}
{% block javascripts %} {% block javascripts %}
{{ encore_entry_script_tags('app', null, 'appConfig') }} {{ encore_entry_script_tags('app') }}
{{ encore_entry_script_tags('bootstrap-js', null, 'appConfig') }} {{ encore_entry_script_tags('bootstrap-js') }}
{{ encore_entry_script_tags('theme', null, 'themeConfig') }} {{ encore_entry_script_tags('theme') }}
{% endblock %} {% endblock %}
</body> </body>
</html> </html>

View File

@ -11,11 +11,11 @@ const basePath = process.env.BASE_PATH || ''
// Definition de AppConfig // Definition de AppConfig
Encore Encore
// directory where compiled assets will be stored // directory where compiled assets will be stored
.setOutputPath('public/build/app/') .setOutputPath('public/build/')
// public path used by the web server to access the output path // public path used by the web server to access the output path
.setPublicPath(basePath + '/build/app') .setPublicPath(basePath + '/build/')
// only needed for CDN's or sub-directory deploy // only needed for CDN's or sub-directory deploy
.setManifestKeyPrefix('build/app') .setManifestKeyPrefix('build')
/* /*
* ENTRY CONFIG * ENTRY CONFIG
@ -26,6 +26,7 @@ Encore
.addEntry('app', './assets/app.js') .addEntry('app', './assets/app.js')
.addEntry('bootstrap-css', './assets/styles/bootstrap.scss') .addEntry('bootstrap-css', './assets/styles/bootstrap.scss')
.addEntry('bootstrap-js', './assets/app-bootstrap.js') .addEntry('bootstrap-js', './assets/app-bootstrap.js')
.addEntry('theme','./public/theme-entrypoint.js')
// enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js) // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js)
.enableStimulusBridge('./assets/controllers.json') .enableStimulusBridge('./assets/controllers.json')
@ -62,40 +63,6 @@ Encore
.enablePostCssLoader() .enablePostCssLoader()
.autoProvidejQuery() .autoProvidejQuery()
.enableSassLoader() .enableSassLoader()
// build the first configuration
const appConfig = Encore.getWebpackConfig();
// Set a unique name for the config (needed later!)
appConfig.name = 'appConfig';
// reset Encore to build the second config
Encore.reset();
// Definition de themeConfig
Encore
// directory where compiled assets will be stored
.setOutputPath('public/build/theme/')
// public path used by the web server to access the output path
.setPublicPath(basePath + '/build/theme')
// only needed for CDN's or sub-directory deploy
.setManifestKeyPrefix('build/theme')
.addEntry('theme','./public/theme-entrypoint.js')
.splitEntryChunks()
.enableSingleRuntimeChunk()
.enableBuildNotifications()
.enableSourceMaps(false)
.enableVersioning(false)
.enablePostCssLoader()
; ;
// build the second configuration module.exports = Encore.getWebpackConfig();
const themeConfig = Encore.getWebpackConfig();
// Set a unique name for the config (needed later!)
themeConfig.name = 'themeConfig';
;
// export the final configuration as an array of multiple configurations
module.exports = [appConfig, themeConfig];