From 69a484320fa3080cf22d7972c2ec204f9ae93ca5 Mon Sep 17 00:00:00 2001 From: George Dumitrescu Date: Sat, 26 Sep 2026 19:06:00 +0300 Subject: [PATCH] feat: add a Laravel Mix watcher worker Laravel projects scaffolded before Vite keep Laravel Mix through every later upgrade, and until now they got no asset worker at all because the Vite worker only appears once node_modules/vite exists. Every Laravel major now declares a mix worker that runs npm run watch on the host, gated on node_modules/laravel-mix, per worktree and replacing the build step like the Vite worker does. Mix writes its output into public/, which nginx already serves, so there is no dev server to proxy and no hot file to probe. The worker is drawn with the webpack mark from Simple Icons, since Mix has none of its own. --- frameworks/laravel/10.yaml | 13 +++++++++++++ frameworks/laravel/11.yaml | 13 +++++++++++++ frameworks/laravel/12.yaml | 13 +++++++++++++ frameworks/laravel/13.yaml | 13 +++++++++++++ frameworks/laravel/6.yaml | 13 +++++++++++++ frameworks/laravel/7.yaml | 13 +++++++++++++ frameworks/laravel/8.yaml | 13 +++++++++++++ frameworks/laravel/9.yaml | 13 +++++++++++++ frameworks/workers/webpack.svg | 1 + 9 files changed, 105 insertions(+) create mode 100644 frameworks/workers/webpack.svg diff --git a/frameworks/laravel/10.yaml b/frameworks/laravel/10.yaml index 0b0fb28..9311ba4 100644 --- a/frameworks/laravel/10.yaml +++ b/frameworks/laravel/10.yaml @@ -147,6 +147,19 @@ workers: file: node_modules/vite health: url_file: public/hot + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/11.yaml b/frameworks/laravel/11.yaml index 0fa9f26..b0fbea0 100644 --- a/frameworks/laravel/11.yaml +++ b/frameworks/laravel/11.yaml @@ -164,6 +164,19 @@ workers: file: node_modules/vite health: url_file: public/hot + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/12.yaml b/frameworks/laravel/12.yaml index 7dcebef..0e5777d 100644 --- a/frameworks/laravel/12.yaml +++ b/frameworks/laravel/12.yaml @@ -164,6 +164,19 @@ workers: file: node_modules/vite health: url_file: public/hot + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/13.yaml b/frameworks/laravel/13.yaml index 692a4d0..57713ed 100644 --- a/frameworks/laravel/13.yaml +++ b/frameworks/laravel/13.yaml @@ -164,6 +164,19 @@ workers: file: node_modules/vite health: url_file: public/hot + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/6.yaml b/frameworks/laravel/6.yaml index af7bf3a..3c636c7 100644 --- a/frameworks/laravel/6.yaml +++ b/frameworks/laravel/6.yaml @@ -134,6 +134,19 @@ workers: composer: laravel/horizon conflicts_with: - queue + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/7.yaml b/frameworks/laravel/7.yaml index dbe4263..d60acd4 100644 --- a/frameworks/laravel/7.yaml +++ b/frameworks/laravel/7.yaml @@ -134,6 +134,19 @@ workers: composer: laravel/horizon conflicts_with: - queue + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/8.yaml b/frameworks/laravel/8.yaml index 768ef7a..fb6fec3 100644 --- a/frameworks/laravel/8.yaml +++ b/frameworks/laravel/8.yaml @@ -134,6 +134,19 @@ workers: composer: laravel/horizon conflicts_with: - queue + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/laravel/9.yaml b/frameworks/laravel/9.yaml index 44b7552..50dafc8 100644 --- a/frameworks/laravel/9.yaml +++ b/frameworks/laravel/9.yaml @@ -147,6 +147,19 @@ workers: file: node_modules/vite health: url_file: public/hot + # Mix rebuilds into public/, which nginx already serves, so unlike vite there + # is no dev server to proxy and no hot file to probe. + mix: + icon: webpack + color: "#8DD6F9" + per_worktree: true + replaces_build: true + label: Laravel Mix + command: npm run watch + restart: on-failure + host: true + check: + file: node_modules/laravel-mix logs: - path: storage/logs/*.log diff --git a/frameworks/workers/webpack.svg b/frameworks/workers/webpack.svg new file mode 100644 index 0000000..ca2905e --- /dev/null +++ b/frameworks/workers/webpack.svg @@ -0,0 +1 @@ + \ No newline at end of file