fix: aggiorna gli script per utilizzare npx con pnpm e allinea la versione nel package.json

This commit is contained in:
2026-10-22 21:23:34 +02:00
parent 1a1e3cd09f
commit 386c3d7744
8 changed files with 1312 additions and 989 deletions
+3 -2
View File
@@ -11,8 +11,9 @@ final "add to cart" action posted back to the parent window via `postMessage`.
## Commands ## Commands
Package manager is **pnpm** (`pnpm-lock.yaml` is the lockfile of record even though `package-lock.json` is Package manager is **pnpm 10.34.7** (pinned in `packageManager`; `build.sh`/`dev.sh` run it via
also present). `npx pnpm@10.34.7`, so lockfiles stay at `lockfileVersion: '9.0'`). `pnpm-lock.yaml` is the lockfile of record
even though `package-lock.json` is also present.
```bash ```bash
pnpm install # install deps pnpm install # install deps
+2 -1
View File
@@ -14,5 +14,6 @@
"devDependencies": { "devDependencies": {
"@vitejs/plugin-vue": "^5.2.1", "@vitejs/plugin-vue": "^5.2.1",
"vite": "^6.0.7" "vite": "^6.0.7"
} },
"packageManager": "pnpm@10.34.7"
} }
+505 -424
View File
File diff suppressed because it is too large Load Diff
+7 -2
View File
@@ -7,5 +7,10 @@ set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)" ROOT="$(cd "$(dirname "$0")" && pwd)"
(cd "$ROOT" && pnpm install --frozen-lockfile && pnpm build) # Versione di pnpm fissata (formato dei pnpm-lock.yaml): usata via npx così non dipende dal pnpm
(cd "$ROOT/backoffice/cliente" && pnpm install --frozen-lockfile && pnpm build) # installato sulla macchina. Va tenuta allineata al campo "packageManager" dei package.json.
PNPM=(npx --yes pnpm@10.34.7)
for dir in "$ROOT" "$ROOT/backoffice/cliente"; do
(cd "$dir" && "${PNPM[@]}" install --frozen-lockfile --config.confirmModulesPurge=false && "${PNPM[@]}" build)
done
+8 -5
View File
@@ -14,7 +14,7 @@ CLIENTE="$BACKOFFICE/cliente"
port_in_use() { lsof -nP -iTCP:"$1" -sTCP:LISTEN >/dev/null 2>&1; } port_in_use() { lsof -nP -iTCP:"$1" -sTCP:LISTEN >/dev/null 2>&1; }
# --- Controlli preliminari --------------------------------------------------- # --- Controlli preliminari ---------------------------------------------------
for cmd in php pnpm lsof; do for cmd in php npx lsof; do
command -v "$cmd" >/dev/null || { echo "Errore: '$cmd' non trovato nel PATH." >&2; exit 1; } command -v "$cmd" >/dev/null || { echo "Errore: '$cmd' non trovato nel PATH." >&2; exit 1; }
done done
@@ -32,8 +32,11 @@ for port in 8000; do
done done
[ -d "$BACKOFFICE/vendor" ] || (cd "$BACKOFFICE" && composer install) [ -d "$BACKOFFICE/vendor" ] || (cd "$BACKOFFICE" && composer install)
[ -d "$CLIENTE/node_modules" ] || (cd "$CLIENTE" && pnpm install) # Stessa versione di pnpm di build.sh (formato dei pnpm-lock.yaml).
[ -d "$ROOT/node_modules" ] || (cd "$ROOT" && pnpm install) PNPM=(npx --yes pnpm@10.34.7)
for dir in "$ROOT" "$CLIENTE"; do
(cd "$dir" && "${PNPM[@]}" install --frozen-lockfile --config.confirmModulesPurge=false)
done
# --- Avvio servizi ----------------------------------------------------------- # --- Avvio servizi -----------------------------------------------------------
PIDS=() PIDS=()
@@ -63,8 +66,8 @@ run() {
} }
run "laravel" "$BACKOFFICE" php artisan serve --port=8000 run "laravel" "$BACKOFFICE" php artisan serve --port=8000
run "cliente" "$CLIENTE" pnpm build --watch run "cliente" "$CLIENTE" "${PNPM[@]}" build --watch
run "config " "$ROOT" pnpm build --watch run "config " "$ROOT" "${PNPM[@]}" build --watch
cat <<EOF cat <<EOF
+6 -6
View File
@@ -84,10 +84,10 @@ sono in git: le genera `./build.sh` sul server dopo ogni pull.
1. **Git**: repository collegato al dominio, cartella di deploy es. `kreios/`. 1. **Git**: repository collegato al dominio, cartella di deploy es. `kreios/`.
2. **Hosting**: Document root = `kreios/backoffice/public`, PHP 8.3+. 2. **Hosting**: Document root = `kreios/backoffice/public`, PHP 8.3+.
3. **Node.js + pnpm**: estensione Node.js di Plesk (versione 22), accesso SSH dell'utente della subscription 3. **Node.js**: estensione Node.js di Plesk (versione 22) e accesso SSH dell'utente della subscription con
con shell `/bin/bash` (non chroot, altrimenti `/opt/plesk/node` non è visibile), poi via SSH, una volta: shell `/bin/bash` (non chroot, altrimenti `/opt/plesk/node` non è visibile). pnpm non va installato:
`PATH=/opt/plesk/node/22/bin:$PATH npm install -g pnpm@8.10.2 --prefix ~/.local`. La versione 8 è quella `build.sh` usa `npx pnpm@10.34.7`, la versione dei lockfile (`lockfileVersion: '9.0'`), qualunque pnpm
dei lockfile (`lockfileVersion: '6.0'`); si installa nella home dell'utente, senza permessi di root. sia presente sulla macchina.
4. **`.env`** creato a mano in `kreios/backoffice/.env` (`APP_ENV=production`, `APP_DEBUG=false`, `APP_URL`, 4. **`.env`** creato a mano in `kreios/backoffice/.env` (`APP_ENV=production`, `APP_DEBUG=false`, `APP_URL`,
`DB_*`, `MAIL_*`, `ADMIN_NOTIFY_EMAIL`), poi una volta sola: `php artisan key:generate`, `DB_*`, `MAIL_*`, `ADMIN_NOTIFY_EMAIL`), poi una volta sola: `php artisan key:generate`,
`php artisan storage:link`, `php artisan db:seed --force` (admin, catalogo e immagini del configuratore). `php artisan storage:link`, `php artisan db:seed --force` (admin, catalogo e immagini del configuratore).
@@ -95,7 +95,7 @@ sono in git: le genera `./build.sh` sul server dopo ogni pull.
di PHP/Node del server: di PHP/Node del server:
```bash ```bash
export PATH=/var/www/vhosts/<dominio>/.local/bin:/opt/plesk/node/22/bin:$PATH export PATH=/opt/plesk/node/22/bin:$PATH
PHP=/opt/plesk/php/8.3/bin/php PHP=/opt/plesk/php/8.3/bin/php
(cd backoffice && $PHP /usr/lib/plesk-9.0/composer.phar install --no-dev --optimize-autoloader --no-interaction) (cd backoffice && $PHP /usr/lib/plesk-9.0/composer.phar install --no-dev --optimize-autoloader --no-interaction)
# svuota tutte le cache di Laravel (config, route, view, eventi, cache applicativa, compilati) # svuota tutte le cache di Laravel (config, route, view, eventi, cache applicativa, compilati)
@@ -107,7 +107,7 @@ sono in git: le genera `./build.sh` sul server dopo ogni pull.
``` ```
`build.sh` installa le dipendenze con `pnpm install --frozen-lockfile`: se `package.json` cambia, va `build.sh` installa le dipendenze con `pnpm install --frozen-lockfile`: se `package.json` cambia, va
committato anche il `pnpm-lock.yaml` aggiornato, altrimenti il deploy fallisce. Durante la build le cartelle committato anche il `pnpm-lock.yaml` aggiornato (generato con pnpm 10), altrimenti il deploy fallisce. Durante la build le cartelle
`public/configuratore` e `public/preventivo` vengono svuotate e riscritte: per qualche secondo le due `public/configuratore` e `public/preventivo` vengono svuotate e riscritte: per qualche secondo le due
pagine non sono disponibili. pagine non sono disponibili.
+2 -1
View File
@@ -24,5 +24,6 @@
"devDependencies": { "devDependencies": {
"vite": "^6.2.4", "vite": "^6.2.4",
"vite-plugin-minify": "^2.1.0" "vite-plugin-minify": "^2.1.0"
} },
"packageManager": "pnpm@10.34.7"
} }
+754 -523
View File
File diff suppressed because it is too large Load Diff