Build-System
Chamilo verwendet Webpack 5 über Symfony Webpack Encore zum Erstellen von Frontend-Assets. Die vollständige Build-Konfiguration befindet sich in webpack.config.js im Projektstammverzeichnis.
Die Ausgabe wird in public/build/ geschrieben und unter dem öffentlichen Pfad /build bereitgestellt.
Einstiegspunkte
JavaScript
vue
assets/vue/main.js
Haupt-Vue-3-Anwendung
vue_installer
assets/vue/main_installer.js
Installationsassistent
legacy_app
assets/js/legacy/app.js
Älteres JavaScript
legacy_exercise
assets/js/legacy/exercise.js
Übungsplayer
legacy_lp
assets/js/legacy/lp.js
Lernpfad-Player
legacy_document
assets/js/legacy/document.js
Dokumentenviewer
legacy_free-jqgrid
assets/js/legacy/free-jqgrid.js
Älteres Grid-Widget
legacy_framereadyloader
assets/js/legacy/frameReadyLoader.js
Frame-Ready-Loader für ältere IFrames
translatehtml
assets/js/translatehtml.js
HTML-Übersetzungshilfe
glossary_auto
assets/js/glossary-auto.js
Automatische Hervorhebung von Glossarbegriffen
CSS
app
assets/css/app.scss
css/chat
assets/css/chat.scss
css/document
assets/css/document.scss
css/editor
assets/css/editor.scss
css/editor_content
assets/css/editor_content.scss
css/markdown
assets/css/markdown.scss
css/print
assets/css/print.scss
css/responsive
assets/css/responsive.scss
css/scorm
assets/css/scorm.scss
Build-Funktionen
Vue 3 SFC —
.vueSingle-File-Komponenten, die vonvue-loaderkompiliert werden; der Runtime-Compiler ist deaktiviert (runtimeCompilerBuild: false), daher müssen alle Vorlagen vorab kompiliert werdenTypeScript — Transpile-Only-Modus (
transpileOnly: true) für schnelle Builds, keine Typprüfung während des BuildsSass/SCSS — Volle SCSS-Unterstützung über
sass-loaderTailwind CSS — Utility-First-CSS, das inline über PostCSS verarbeitet wird (konfiguriert in
webpack.config.js; es gibt keine separatepostcss.config.js)Babel — ES6+ Transpilation mit
@babel/preset-envundcore-js@3Polyfills (useBuiltIns: "usage")jQuery Auto-Provision —
autoProvidejQuery()macht$undjQueryglobal verfügbar ohne explizite Imports, um älteren Code zu unterstützenSource Maps — Nur im Entwicklungsmodus aktiviert
Single Runtime Chunk — Gemeinsamer Runtime für alle Einstiegspunkte
Filesystem-Cache — Der persistente Filesystem-Cache von Webpack ist aktiviert, um inkrementelle Rebuilds zu beschleunigen
Chunk-Namespacing —
output.uniqueNameundoutput.chunkLoadingGlobalsind auf"chamilo"/"webpackChunkChamilo"gesetzt, um Kollisionen beim Laden von Chunks zu vermeiden, wenn mehrere Webpack-Bundles auf einer Seite koexistieren
Funktionen nur für Produktion
Versionierung — Content-Hash-Suffixe für alle Ausgabedateinamen (
enableVersioning())Subresource Integrity —
integrity-Attribute auf<script>- und<link>-Tags (enableIntegrityHashes())Ausgabebereinigung —
public/build/wird vor jedem Produktionsbuild geleert
Ungehashte Asset-Kopien (CopyUnhashedAssetsPlugin)
CopyUnhashedAssetsPlugin)Einige ältere PHP-Seiten verweisen auf Assets über einen festen Dateinamen und können das Webpack-Manifest nicht verwenden. Ein benutzerdefiniertes CopyUnhashedAssetsPlugin (definiert am Ende von webpack.config.js) kopiert bestimmte gehashte Produktionsdateien nach jedem Build zusätzlich auf einen ungehashten Pfad:
legacy_document.[hash].js
legacy_document.js
legacy_exercise.[hash].js
legacy_exercise.js
legacy_framereadyloader.[hash].js / .css
legacy_framereadyloader.js / .css
css/document.[hash].css
css/document.css
css/editor_content.[hash].css
css/editor_content.css
glossary_auto.[hash].js
glossary_auto.js
Kopierte Bibliotheks-Assets
copyFiles() kopiert eine Reihe von npm-Paketen direkt nach public/build/libs/ ohne sie zu bündeln, zur Verwendung über <script>- / <link>-Tags in älteren Vorlagen:
flatpickr(JS + CSS + Lokalisierungen)chart.jsmediaelement+mediaelement-pluginsmomentLokalisierungenselect2(JS + CSS)qtip2readmore-jsjs-cookiepwstrength-bootstrapmultiselect-two-sides
Build-Befehle
Tailwind-Konfiguration
Tailwind ist in tailwind.config.js konfiguriert. Wichtige Punkte:
important: true— Alle generierten Hilfsprogramme enthalten!important, wodurch sie PrimeVue-Komponentenstile ohne zusätzliche Spezifitätstricks überschreiben könnenInhaltspfade — Tailwind durchsucht
assets/**/*.{js,vue},public/main/**/*.{php,twig,tpl},public/plugin/**/*.{php,twig,tpl}undsrc/CoreBundle/Resources/views/**/*.html.twignach KlassenverwendungenCSS-Variablen-Farbsystem — Jeder Farb-Token (primär, sekundär, tertiär, Erfolg, Info, Warnung, Gefahr) wird durch eine benutzerdefinierte CSS-Eigenschaft unterstützt (z. B.
--color-primary-base), die pro Thema invar/themes/[theme-name]/colors.cssdefiniert ist. Die Werte sind durch Leerzeichen getrennte RGB-Kanal-Tripel, die Tailwind-Transparenz-Hilfsprogramme ermöglichen (bg-primary/50)Benutzerdefinierte Schriftgröße —
body-1,body-2,caption,tinyGrößen-/Zeilenhöhen-Paare werden übertheme.extend.fontSizehinzugefügtPlugins —
@tailwindcss/formsund@tailwindcss/typographysind aktiviert
PostCSS (Tailwind + Autoprefixer) wird inline innerhalb von webpack.config.js über enablePostCssLoader() konfiguriert — es gibt keine eigenständige postcss.config.js-Datei.
Zuletzt aktualisiert
War das hilfreich?