chore(dev): pin standalone ports + add dev:all script

Fixed-port assignments for each standalone vite dev server, with
strictPort to fail loud if a port is taken (no silent +1 increment
that would break the hub's hardcoded VITE_HUB_<NAME>_URL targets):

  hub        5173  (npm run dev)
  castle     5180
  sortir     5181  (activities)
  wallet     5182
  chat       5183
  forum      5184
  market     5185
  tasks      5186

`npm run dev:all` boots the hub and all 7 standalones concurrently
via the existing concurrently devDep. The hub's chakra tiles point
at these ports via VITE_HUB_<NAME>_URL in .env.local for end-to-end
local testing of the cross-subdomain auth relay.

Pure dev infrastructure — no production behaviour change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Padreug 2026-05-02 10:10:43 +02:00
commit 9a1e5e3994
8 changed files with 29 additions and 0 deletions

View file

@ -30,6 +30,7 @@
"dev:forum": "vite --host --config vite.forum.config.ts",
"build:forum": "vue-tsc -b && vite build --config vite.forum.config.ts",
"preview:forum": "vite preview --host --config vite.forum.config.ts",
"dev:all": "concurrently -n hub,castle,sortir,wallet,chat,forum,market,tasks -c blue,magenta,cyan,yellow,green,blue,red,gray \"npm:dev\" \"npm:dev:castle\" \"npm:dev:activities\" \"npm:dev:wallet\" \"npm:dev:chat\" \"npm:dev:forum\" \"npm:dev:market\" \"npm:dev:tasks\"",
"electron:dev": "concurrently \"vite --host\" \"electron-forge start\"",
"electron:build": "vue-tsc -b && vite build && electron-builder",
"electron:package": "electron-builder",

View file

@ -40,6 +40,10 @@ function activitiesHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5181,
strictPort: true,
},
plugins: [
activitiesHtmlPlugin(),
vue(),

View file

@ -40,6 +40,10 @@ function castleHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5180,
strictPort: true,
},
plugins: [
castleHtmlPlugin(),
vue(),

View file

@ -35,6 +35,10 @@ function chatHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5183,
strictPort: true,
},
plugins: [
chatHtmlPlugin(),
vue(),

View file

@ -35,6 +35,10 @@ function forumHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5184,
strictPort: true,
},
plugins: [
forumHtmlPlugin(),
vue(),

View file

@ -35,6 +35,10 @@ function marketHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5185,
strictPort: true,
},
plugins: [
marketHtmlPlugin(),
vue(),

View file

@ -35,6 +35,10 @@ function tasksHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5186,
strictPort: true,
},
plugins: [
tasksHtmlPlugin(),
vue(),

View file

@ -39,6 +39,10 @@ function walletHtmlPlugin(): Plugin {
*/
export default defineConfig(({ mode }) => ({
base: process.env.VITE_BASE_PATH || '/',
server: {
port: 5182,
strictPort: true,
},
plugins: [
walletHtmlPlugin(),
vue(),