Beheer

Build

De asset-build, watch-modus, je eigen toolchain en statische bestanden.

De asset-build zet de styles, scripts en interfaceteksten van het project om in de bestanden die de browser laadt. PHP en templates hebben geen build nodig: een wijziging aan een template of library is bij het volgende request live.

Commando's

./nimbly build      # everything: Tailwind, CSS, JavaScript and texts
./nimbly watch      # build once, then rebuild on every change
Stap Leest Schrijft
Tailwind de classes in elke .tpl van core/ en ext/ css/tw/out.css
CSS css/index.css, de uitvoer van Tailwind en ext/theme.css ext/static/app.css
JavaScript js/index.jsx en wat het importeert, inclusief Alpine ext/static/app.js
Teksten de .po-bestanden van core en ext/data/.i18n/ de samengevoegde vertalingen

ext/static/app.version verandert bij elke build, zodat browsers de nieuwe bestanden ophalen. ext/static/app.core legt vast vanaf welke core-commit de assets zijn gebouwd; het dashboard waarschuwt als core sindsdien build-invoer heeft veranderd.

Draai een build na een core-update, en nadat je styles, scripts, Tailwind-classes of tekstbestanden hebt aangepast. Commit de gebouwde bestanden met de wijziging, of bouw ze in je deploypipeline.

Je eigen toolchain

De standaardbuild dekt de standaardstack. Een route die React, Vue, Svelte of een andere toolset gebruikt, bouwt met de eigen tools van die toolset. Houd de broncode en package.json ervan in een eigen map binnen ext/, en schrijf de uitvoer naar ext/static/:

// ext/planner/vite.config.js
export default {
  build: {
    outDir: '../static/planner',
    emptyOutDir: true,
    rollupOptions: { input: 'src/main.jsx', output: { entryFileNames: 'main.js', assetFileNames: '[name][extname]' } },
  },
};

Bestanden in ext/static/ worden vanaf de root van de site geleverd, dus deze build staat op /planner/main.js. Vaste bestandsnamen houden de template van de route eenvoudig. Verander na elke build de versie in het adres, zoals main.js?v=3, zodat browsers de nieuwe bestanden ophalen. Zie Frontendstack.

Statische bestanden

Alles in ext/static/ wordt geleverd zoals het is, en een bestand daar vervangt het bestand met dezelfde naam in core/static/. Zo stelt een project zijn eigen favicon, web-app-manifest en iconen in.

Bekijk deze pagina als Markdown