Fichier bundle.json
Le fichier bundle.json représente les bundles à générer par la chaîne de build front.
Niveau pricipal
Il y a trois entrées principales dans ce fichier :
Bundle
Les sections styles et scripts ont presque tout en commun.
Il s'agit d'un objet dont chaque entrée définit un bundle.
Chaque bundle contient les informations suivantes :
extends(string) : référence un autre bundle dont les fichiers et les langues seront ajoutés au bundle courant (en premier)abstract(boolean) : un bundle abstrait ne génère pas de fichier, il doit être étendu dans un autre bundle (il n'est pas nécessaire qu'un bundle soit abstrait pour être étendu)files(string[]) : la liste des fichiers js ou css contenu dans le bundletarget(string) : le dossier cible (défaut : 'static/css' ou 'static/js')hash(boolean) : permet d'empêcher la création du hash dans le nom du fichierlang(string[]) : permet de décliner les bundles en plusieurs langues, les fichiers de langue doivent être référencés avec${lang}
Externals
Les scripts js pouvant dépendre d'une librairie externe, il faut déclarer celle-ci ici.
Le bundle l'utilisant devra alors le déclarer :
Il s'agit alors d'un objet dont les clés sont les références dans le script et les valeurs le nom de l'external.
{
"externals": {
"jQuery": "jQuery",
"jquery": "jQuery",
"jquery-ui": "jquery-ui",
"jquery.validate": "jQuery.validate"
}
}
Exemple de fichier
Ceci n'est qu'un exemple recomposé de plusieurs fichiers
{
"externals": {
"jQuery": "/adminsite/scripts/libs/jquery-1.11.0.js",
"jquery-ui": "/adminsite/scripts/libs/jquery-ui-1.10.3.custom.js",
"jquery.validate": "/adminsite/scripts/libs/validate/jquery.validate-1.13.1.js",
"Choices": "/adminsite/scripts/libs/choices/assets/scripts/dist/choices.min.js",
"Sortable": "/adminsite/scripts/libs/Sortable.js",
"CKEDITOR_HELPER": "/adminsite/scripts/libs/ckeditor-helper.js"
},
"styles": {
"common": {
"abstract": true,
"files": [
"sass/common.scss"
]
},
"styles-dsi": {
"extends": "common",
"files": [
"sass/jsp/styles/mode_connecte.scss"
]
},
"styles-print": {
"files": [
"sass/jsp/styles/impression.scss"
]
},
"complement": {
"files": [
"sass/jsp/styles/complement.scss"
],
"target": "/jsp/styles",
"hash": false
},
"screen": {
"files": [
"sass/jsp/styles/screen.scss"
],
"target": "/jsp/styles",
"hash": false
},
"jQueryCSS": {
"files": [
"webapp/jsp/scripts/libs/css/magnific-popup.css"
]
}
},
"scripts": {
"scriptsFo": {
"files": [
"webapp/adminsite/scripts/libs/css/jquery-ui-1.10.4.custom.css",
"webapp/adminsite/scripts/libs/css/jquery.kmultiselect-0.1.1.css",
"webapp/adminsite/scripts/libs/css/jquery.kmonoselect-0.1.0.css",
"webapp/adminsite/scripts/libs/css/jquery.dataTables.css",
"webapp/adminsite/scripts/libs/css/jquery.dataTables_themeroller.css",
"webapp/jsp/scripts/frontoffice-i18n_${lang}.js",
"webapp/jsp/scripts/libs/tabindex-override.js",
"webapp/jsp/scripts/menu.js",
"webapp/jsp/scripts/validation.js",
"webapp/jsp/scripts/frontoffice.js",
"webapp/jsp/scripts/galeries.js",
"webapp/jsp/scripts/medias.js",
"webapp/jsp/scripts/headPage.js",
"webapp/jsp/scripts/onglets.js"
],
"lang": [
"en",
"fr_FR"
],
"externals": {
"jQuery": "jQuery",
"jquery": "jQuery",
"jquery-ui": "jquery-ui",
"jquery.validate": "jQuery.validate",
"Choices": "Choices",
"Sortable": "Sortable",
"CKEDITOR_HELPER": "CKEDITOR_HELPER"
}
}
}
}