Aggiornamento agosto 2023

Il mese scorso ho pubblicato un aggiornamento per usare Vite al posto di Create React App. Per mantenere, fino a che sarà possibile, l’utilizzo di Create React App oggi ho rilasciato un nuovo aggiornamento del codice degli esempi che utilizza la versione 5.0.1 dei react-scripts di CRA.

Questo aggiornamento riguarda quindi solo la versione con Create React App. La correzione della modal è stata invece portata anche nella versione con Vite (leggi sotto).

Supporto Node.js 20

La novità principale di questo aggiornamento è la possibilità di usare Node.js 18 e 20 senza ricevere l’errore:

Error: error:0308010C:digital envelope routines::unsupported

Questa soluzione si aggiunge alle altre già indicate qualche mese fa.

Per chi ha già installato le dipendenze

Per chi ha già installato le dipendenze e usa Node.js 20 deve aggiornare manualmente i file package.json, inserire la nuova versione di react-scripts (5.0.1) e lanciare npm install per scaricare la versione aggiornata. In alternativa, dopo aver aggiornato la versione di react-scripts nel package.json potete eseguire npm update che farà aggiornerà anche tutte le altre dipendenze all’ultima versione compatabile (es. bootstrap).

Chi scaricherà i file aggiornati dal branch master non vedrà quindi nessun errore all’avvio anche se usa una versione recente di Node.js.

Aggiornamento dipendenze

Tutte le dipendenze del progetto sono state aggiornate alle ultime disponili. Questo non era strettamente necessario ma evita che durante l’installazione o l’esecuzione dei progetti vengano visualizzati dei warning.

Ho corretto un problema nello stile della modal di eleminazione dell’elenco. Per qualche motivo mancava un div nel componente e questo impediva una visualizzazione corretta. Questa correzione è stata portata anche nel branch vite perché riguarda una correzione dell’applicazione.

Problemi che rimangono con Create React App

Nonostante l’aggiornamento, CRA rimane un progetto non più aggiornato regolarmente e quindi, anche con la versione aggiornata, potreste trovare nel vostro terminale messaggi come questo.

$ npm start

One of your dependencies, babel-preset-react-app, is importing the
"@babel/plugin-proposal-private-property-in-object" package without
declaring it in its dependencies. This is currently working because
"@babel/plugin-proposal-private-property-in-object" is already in your
node_modules folder for unrelated reasons, but it may break at any time.

babel-preset-react-app is part of the create-react-app project, which
is not maintianed anymore. It is thus unlikely that this bug will
ever be fixed. Add "@babel/plugin-proposal-private-property-in-object" to
your devDependencies to work around this error. This will make this message
go away.

Segnalazione problemi e supporto

Vi ricordo che potete segnalare un problema relativo al libro (o leggere quelli già segnalati) usando la sezione dedicata su Github.