@massimo-cassandro/minimo 1.33.1 → 1.33.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"UPD-version": "npx update-version --no-log-v0 --log-file=./changelog.md # --log-patch --pkg=alt/path/to/package.json",
|
|
27
27
|
"upd@m": "npx upd@m",
|
|
28
28
|
"launchChrome": "open -n -a 'Google Chrome' --args --profile-directory='Profile 3'",
|
|
29
|
-
"python server": "python3 -m http.server
|
|
30
|
-
"php server": "php -S localhost:
|
|
29
|
+
"python server": "python3 -m http.server [[port8000]] # --directory __dirname__ # 8000 = default port",
|
|
30
|
+
"php server": "php -S localhost:[[port8000]] # -t root_dir/",
|
|
31
31
|
"symfony server": "symfony serve --port=[[port8000]] --listen-ip=0.0.0.0 # http://192.168.1.135:[[port8000]] # -d (deamon): rimane aperto anche dopo la chiusura del terminale, terminare con `symfony server:stop`",
|
|
32
32
|
"node server": "node serve # richiede ‘npm i serve’",
|
|
33
33
|
"build tokens": "npx buildTokens --config ./app/css/tokens-config.mjs",
|
|
@@ -49,46 +49,60 @@ PORT_8000="80${PORT_SUFFIX}"
|
|
|
49
49
|
PORT_5700="57${PORT_SUFFIX}"
|
|
50
50
|
echo -e "${DIM}Porte: ${PORT_8000} (server), ${PORT_5700} (webpack dev server)${NC}"
|
|
51
51
|
|
|
52
|
-
# Pacchetti opzionali: installati
|
|
53
|
-
#
|
|
54
|
-
#
|
|
55
|
-
#
|
|
56
|
-
#
|
|
57
|
-
#
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
52
|
+
# Pacchetti opzionali: installati solo su conferma esplicita dell'utente
|
|
53
|
+
# (vedi ciclo di domande più sotto). Include sia devDependency "pure" del
|
|
54
|
+
# progetto, sia i peer dependencies opzionali di @massimo-cassandro/minimo
|
|
55
|
+
# (vedi package.json di minimo, campi peerDependencies/peerDependenciesMeta:
|
|
56
|
+
# elenco mantenuto a mano, non letto dinamicamente da minimo — se cambiano va
|
|
57
|
+
# aggiornato manualmente anche qui).
|
|
58
|
+
# Ogni voce è "<pacchetto> | <dev> | <descrizione>" (pacchetto e colonna <dev>
|
|
59
|
+
# allineati a colonna fissa solo per leggibilità, non richiesto dal parsing).
|
|
60
|
+
# La colonna <dev> vale "dev" se il pacchetto va installato con `npm i -D`
|
|
61
|
+
# (devDependency), stringa vuota se va installato con `npm i -S` (dependency
|
|
62
|
+
# vera, es. peer dependency di minimo usata a runtime).
|
|
63
63
|
optionalPackages=(
|
|
64
|
-
"dotenv-webpack | gestione variabili d'ambiente (.env) nel bundle webpack"
|
|
65
|
-
"@principalstudio/html-webpack-inject-preload | injection dei tag <link rel=preload> nell'html generato"
|
|
66
|
-
"postcss-jit-props | include nel CSS compilato solo le custom properties effettivamente usate"
|
|
67
|
-
"@svgdotjs/svg.js | richiesto da charts/ di minimo"
|
|
68
|
-
"blurhash | richiesto da unsplash-page di minimo (create-blurhash-canvas)"
|
|
69
|
-
"simple-datatables | richiesto da s-datatable-component di minimo"
|
|
70
|
-
"style-dictionary | richiesto da design-tokens/utilities di minimo (build-tokens)"
|
|
64
|
+
"dotenv-webpack | dev | gestione variabili d'ambiente (.env) nel bundle webpack"
|
|
65
|
+
"@principalstudio/html-webpack-inject-preload | dev | injection dei tag <link rel=preload> nell'html generato"
|
|
66
|
+
"postcss-jit-props | dev | include nel CSS compilato solo le custom properties effettivamente usate"
|
|
67
|
+
"@svgdotjs/svg.js | | richiesto da charts/ di minimo"
|
|
68
|
+
"blurhash | | richiesto da unsplash-page di minimo (create-blurhash-canvas)"
|
|
69
|
+
"simple-datatables | | richiesto da s-datatable-component di minimo"
|
|
70
|
+
"style-dictionary | dev | richiesto da design-tokens/utilities di minimo (build-tokens)"
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
+
# Rimuove spazi iniziali/finali da una stringa (usata per i campi estratti
|
|
74
|
+
# da optionalPackages, allineati a colonna fissa con spazi di padding).
|
|
75
|
+
trim() {
|
|
76
|
+
echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
|
|
77
|
+
}
|
|
78
|
+
|
|
73
79
|
# Chiede conferma per un singolo pacchetto opzionale (default: No).
|
|
74
80
|
ask_optional_pkg() {
|
|
75
81
|
local pkg="$1"
|
|
76
82
|
local desc="$2"
|
|
77
83
|
local reply
|
|
78
|
-
|
|
84
|
+
echo -e "\n${YELLOW}${pkg}{NC}"
|
|
85
|
+
echo -e "${DIM}${desc}{NC}"
|
|
86
|
+
read "reply?Installare questo pacchetto opzionale? [y/N]: "
|
|
79
87
|
[[ "$reply" =~ ^[Yy]$ ]]
|
|
80
88
|
}
|
|
81
89
|
|
|
82
|
-
|
|
90
|
+
selectedOptionalDevPkgs=()
|
|
91
|
+
selectedOptionalDepPkgs=()
|
|
83
92
|
|
|
84
93
|
if [ "$DEBUG" != "TRUE" ]; then
|
|
85
94
|
echo -e "\n${GREEN}...PACCHETTI OPZIONALI${NC}"
|
|
86
95
|
for entry in "${optionalPackages[@]}"; do
|
|
87
|
-
pkg
|
|
88
|
-
pkg="$
|
|
89
|
-
|
|
96
|
+
IFS='|' read -r pkg devFlag desc <<< "$entry"
|
|
97
|
+
pkg="$(trim "$pkg")"
|
|
98
|
+
devFlag="$(trim "$devFlag")"
|
|
99
|
+
desc="$(trim "$desc")"
|
|
90
100
|
if ask_optional_pkg "$pkg" "$desc"; then
|
|
91
|
-
|
|
101
|
+
if [ "$devFlag" = "dev" ]; then
|
|
102
|
+
selectedOptionalDevPkgs+=("$pkg")
|
|
103
|
+
else
|
|
104
|
+
selectedOptionalDepPkgs+=("$pkg")
|
|
105
|
+
fi
|
|
92
106
|
fi
|
|
93
107
|
done
|
|
94
108
|
fi
|
|
@@ -178,16 +192,24 @@ force_cat() {
|
|
|
178
192
|
# di copia da usare per ogni file: safe_cat_with_ports confronta e backuppa
|
|
179
193
|
# il singolo file (sostituzione porte no-op se non contiene placeholder);
|
|
180
194
|
# force_cat sovrascrive sempre senza controlli (vedi sopra, usata per ./app).
|
|
195
|
+
# Il quinto argomento (opzionale) è una lista di basename (separati da spazio,
|
|
196
|
+
# riferiti al nome del file sorgente, prima di un eventuale rename_fn) da
|
|
197
|
+
# saltare: usato per escludere package-tpl.json, già copiato a parte prima
|
|
198
|
+
# dell'installazione dei pacchetti npm (vedi più sotto).
|
|
181
199
|
install_tree() {
|
|
182
200
|
local src_root="$1"
|
|
183
201
|
local dest_root="$2"
|
|
184
202
|
local rename_fn="$3"
|
|
185
203
|
local copy_fn="${4:-safe_cat_with_ports}"
|
|
204
|
+
local exclude="$5"
|
|
186
205
|
local file rel dir base new_base dest
|
|
187
206
|
while IFS= read -r file; do
|
|
188
207
|
rel="${file#"$src_root"/}"
|
|
189
208
|
dir="$(dirname "$rel")"
|
|
190
209
|
base="$(basename "$rel")"
|
|
210
|
+
if [ -n "$exclude" ] && [[ " $exclude " == *" $base "* ]]; then
|
|
211
|
+
continue
|
|
212
|
+
fi
|
|
191
213
|
if [ -n "$rename_fn" ]; then
|
|
192
214
|
new_base="$("$rename_fn" "$base")"
|
|
193
215
|
else
|
|
@@ -239,6 +261,19 @@ fi
|
|
|
239
261
|
echo -e "${GREEN}Files will be installed in: '${FRONTEND_INSTALL_PATH}'${NC}"
|
|
240
262
|
|
|
241
263
|
|
|
264
|
+
# package.json va creato dal template PRIMA di installare qualunque pacchetto:
|
|
265
|
+
# se non esistesse ancora, i comandi `npm i` più sotto ne genererebbero uno
|
|
266
|
+
# "al volo" privo di scripts/metadati del template, e le dipendenze verrebbero
|
|
267
|
+
# registrate lì; alla successiva install_tree su source_files/root (più sotto)
|
|
268
|
+
# quel package.json risulterebbe diverso dal template e verrebbe spostato in
|
|
269
|
+
# OLD-package.json, perdendo le dipendenze appena installate. Per questo qui
|
|
270
|
+
# si usa safe_cat_with_ports (idempotente, con backup OLD- se il file esiste
|
|
271
|
+
# già con contenuto diverso) e poi si esclude package-tpl.json dalla
|
|
272
|
+
# install_tree sulla root, per non ripetere la copia dopo che npm l'ha
|
|
273
|
+
# già modificato.
|
|
274
|
+
echo -e "\n${GREEN}...package.json${NC}"
|
|
275
|
+
safe_cat_with_ports "${SOURCE_FILES_DIR}/root/package-tpl.json" "package.json"
|
|
276
|
+
|
|
242
277
|
echo -e "\n${GREEN}...NODE MODULES${NC}"
|
|
243
278
|
|
|
244
279
|
dependencies=(
|
|
@@ -283,8 +318,10 @@ devDependencies=(
|
|
|
283
318
|
)
|
|
284
319
|
|
|
285
320
|
# pacchetti opzionali selezionati dall'utente (vedi ciclo di domande a inizio
|
|
286
|
-
# script),
|
|
287
|
-
|
|
321
|
+
# script), instradati in devDependencies o dependencies in base alla colonna
|
|
322
|
+
# <dev> di optionalPackages (vedi sopra)
|
|
323
|
+
devDependencies+=("${selectedOptionalDevPkgs[@]}")
|
|
324
|
+
dependencies+=("${selectedOptionalDepPkgs[@]}")
|
|
288
325
|
|
|
289
326
|
if [ "$DEBUG" = "TRUE" ]; then
|
|
290
327
|
dependencies=( @massimo-cassandro/minimo )
|
|
@@ -343,8 +380,10 @@ mkdir -p "$WEBPACK_MODULES_INSTALL_PATH"
|
|
|
343
380
|
# rename_root_file), quindi aggiungere/spostare/rinominare file lì non
|
|
344
381
|
# richiede modifiche a questo script. Per app/ si usa force_cat (nessun
|
|
345
382
|
# controllo/backup per singolo file, vedi commento su FRONTEND_INSTALL_PATH).
|
|
383
|
+
# package-tpl.json è escluso: già copiato a parte prima dell'installazione
|
|
384
|
+
# dei pacchetti npm (vedi sezione NODE MODULES più sopra).
|
|
346
385
|
echo -e "${DIM}...root${NC}"
|
|
347
|
-
install_tree "${SOURCE_FILES_DIR}/root" "." rename_root_file
|
|
386
|
+
install_tree "${SOURCE_FILES_DIR}/root" "." rename_root_file "" "package-tpl.json"
|
|
348
387
|
echo -e "${DIM}...app${NC}"
|
|
349
388
|
install_tree "${SOURCE_FILES_DIR}/app" "${FRONTEND_INSTALL_PATH}" "" force_cat
|
|
350
389
|
|
|
@@ -377,9 +416,9 @@ force_cat "${MINIMO_PKG_DIR}/design-tokens/tokens-config-sample.mjs" "${FRONTEND
|
|
|
377
416
|
force_cat "${MINIMO_PKG_DIR}/dev-tools/create-favicons/src/default-params.mjs" "${FRONTEND_INSTALL_PATH}/favicons/create-favicons-cfg.mjs"
|
|
378
417
|
|
|
379
418
|
|
|
380
|
-
if [ ${#
|
|
419
|
+
if [ ${#selectedOptionalDevPkgs[@]} -gt 0 ] || [ ${#selectedOptionalDepPkgs[@]} -gt 0 ]; then
|
|
381
420
|
echo -e "\n${YELLOW}Pacchetti opzionali installati:${NC}"
|
|
382
|
-
for pkg in "${
|
|
421
|
+
for pkg in "${selectedOptionalDevPkgs[@]}" "${selectedOptionalDepPkgs[@]}"; do
|
|
383
422
|
echo -e "${YELLOW} - $pkg${NC}"
|
|
384
423
|
done
|
|
385
424
|
echo -e "${YELLOW}Potrebbe essere necessaria una modifica alla configurazione webpack e/o postcss per utilizzare questi pacchetti.${NC}"
|