Compare commits

..

1 Commits

Author SHA1 Message Date
Marijn 32daa17e0d Add a typescript watch service so TS assets rebuild automatically
Previously the compiled TypeScript output only existed after manually
running `bin/console typescript:build`, so a fresh checkout/worktree (or a
`just clean`) would 500 on any page rendering a TS asset until someone
remembered to build it by hand. Mirrors the existing sass watch service,
including sharing a named volume with php since the Dockerfile's
`VOLUME /app/var/` otherwise gives every container its own private,
unsynced /app/var.

Also add a `just compose` passthrough recipe for ad-hoc docker compose
commands (logs, ps, top, etc.) using the worktree's env.
2026-07-14 13:14:31 +02:00
3 changed files with 41 additions and 20 deletions
+3
View File
@@ -71,6 +71,9 @@ up *args: init
set +a
docker compose up -d {{ args }}
compose *args:
docker compose {{ args }}
down *args:
docker compose down --remove-orphans {{ args }}
+19 -1
View File
@@ -12,6 +12,7 @@ services:
- ./frankenphp/conf.d/20-app.dev.ini:/usr/local/etc/php/app.conf.d/20-app.dev.ini:ro
- ${CADDY_DATA_DIR:-./frankenphp/data}:/data
- sass:/app/var/sass
- typescript:/app/var/typescript
environment:
MERCURE_EXTRA_DIRECTIVES: demo
# See https://xdebug.org/docs/all_settings#mode
@@ -49,7 +50,23 @@ services:
- -v
healthcheck:
disable: true
typescript:
image: ${IMAGES_PREFIX:-}app-php
volumes:
- ./:/app:ro
- typescript:/app/var/typescript
entrypoint: ''
depends_on:
- php
command:
- bin/console
- typescript:build
- --watch
- -v
healthcheck:
disable: true
###> symfony/mercure-bundle ###
###< symfony/mercure-bundle ###
@@ -77,3 +94,4 @@ services:
volumes:
sass:
typescript:
Generated
+19 -19
View File
@@ -10800,16 +10800,16 @@
},
{
"name": "phpstan/phpstan-doctrine",
"version": "2.0.28",
"version": "2.0.27",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan-doctrine.git",
"reference": "b4623954d5ffee6311e4ddbaef65c074ae0f781a"
"reference": "39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/b4623954d5ffee6311e4ddbaef65c074ae0f781a",
"reference": "b4623954d5ffee6311e4ddbaef65c074ae0f781a",
"url": "https://api.github.com/repos/phpstan/phpstan-doctrine/zipball/39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f",
"reference": "39b4ca45a07cdd6366eeefa2f7a993cddf3b9f9f",
"shasum": ""
},
"require": {
@@ -10871,9 +10871,9 @@
],
"support": {
"issues": "https://github.com/phpstan/phpstan-doctrine/issues",
"source": "https://github.com/phpstan/phpstan-doctrine/tree/2.0.28"
"source": "https://github.com/phpstan/phpstan-doctrine/tree/2.0.27"
},
"time": "2026-07-13T08:43:43+00:00"
"time": "2026-06-10T10:39:35+00:00"
},
{
"name": "phpstan/phpstan-phpunit",
@@ -12010,16 +12010,16 @@
},
{
"name": "rector/rector",
"version": "2.5.7",
"version": "2.5.5",
"source": {
"type": "git",
"url": "https://github.com/rectorphp/rector.git",
"reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3"
"reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/ba22f8c087848278fed6b4910d4cf1108096d8d3",
"reference": "ba22f8c087848278fed6b4910d4cf1108096d8d3",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/9718a72e7f1aacacbdcb6eeed07a47147bce802e",
"reference": "9718a72e7f1aacacbdcb6eeed07a47147bce802e",
"shasum": ""
},
"require": {
@@ -12058,7 +12058,7 @@
],
"support": {
"issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.5.7"
"source": "https://github.com/rectorphp/rector/tree/2.5.5"
},
"funding": [
{
@@ -12066,7 +12066,7 @@
"type": "github"
}
],
"time": "2026-07-13T15:24:18+00:00"
"time": "2026-07-09T09:48:44+00:00"
},
{
"name": "sebastian/cli-parser",
@@ -12456,16 +12456,16 @@
},
{
"name": "sebastian/exporter",
"version": "8.1.1",
"version": "8.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
"reference": "cfaa77c750dcad6f44c9bac8f62ac486e1c82c26"
"reference": "c0d29a945f8cf82f300a05e69874508e307ca4c6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/cfaa77c750dcad6f44c9bac8f62ac486e1c82c26",
"reference": "cfaa77c750dcad6f44c9bac8f62ac486e1c82c26",
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c0d29a945f8cf82f300a05e69874508e307ca4c6",
"reference": "c0d29a945f8cf82f300a05e69874508e307ca4c6",
"shasum": ""
},
"require": {
@@ -12474,7 +12474,7 @@
"sebastian/recursion-context": "^8.0"
},
"require-dev": {
"phpunit/phpunit": "^13.2.4"
"phpunit/phpunit": "^13.1.10"
},
"type": "library",
"extra": {
@@ -12522,7 +12522,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
"source": "https://github.com/sebastianbergmann/exporter/tree/8.1.1"
"source": "https://github.com/sebastianbergmann/exporter/tree/8.1.0"
},
"funding": [
{
@@ -12542,7 +12542,7 @@
"type": "tidelift"
}
],
"time": "2026-07-13T11:35:11+00:00"
"time": "2026-05-21T11:50:56+00:00"
},
{
"name": "sebastian/file-filter",