CDN cleanup:
- entry.html.twig: remove PhotoSwipe CDN + duplicate JS (main.js handles it)
- dailies.html.twig: remove PhotoSwipe CDN + duplicate JS
- home.html.twig: remove PhotoSwipe CDN + MapLibre CDN + maplibre-utils.js
script tags; add {% block map_assets %} to register map bundle
SVG build pipeline:
- Add lucide-static devDependency; gen-weather-icons.js reads icon SVGs
from node_modules and emits templates/partials/weather-icons.html.twig
- package.json build script now runs gen-weather-icons.js before esbuild
- entry-journal.html.twig includes generated partial instead of hardcoded map
- Rebuild: main.js 83.7kb, map.js 860.7kb, all fonts; zero CDN requests remain
19 lines
783 B
JSON
19 lines
783 B
JSON
{
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "node scripts/gen-weather-icons.js && esbuild js/src/main.js --bundle --minify --format=iife --outfile=js/main.js --loader:.woff2=file --loader:.woff=file --asset-names=../fonts/[name] && esbuild js/src/map.js --bundle --minify --format=iife --outfile=js/map.js && mkdir -p css-compiled fonts && { mv js/main.css css-compiled/main.css 2>/dev/null || true; } && { mv js/map.css css-compiled/map.css 2>/dev/null || true; }"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/dm-sans": "latest",
|
|
"@fontsource/dm-serif-display": "latest",
|
|
"@mapbox/togeojson": "^0.16.2",
|
|
"maplibre-gl": "^4",
|
|
"photoswipe": "^5",
|
|
"scrollama": "^3"
|
|
},
|
|
"devDependencies": {
|
|
"esbuild": "^0.21",
|
|
"lucide-static": "latest"
|
|
}
|
|
}
|