7.29.0 Rilasciato: L'ultima minor release di Babel 7
Questa pagina è stata tradotta da PageTurner AI (beta). Non ufficialmente approvata dal progetto. Hai trovato un errore? Segnala problema →
Babel 7.29.0 è uscito!
Questa è l'ultima minor release di Babel 7, poiché ci stiamo preparando a rilasciare Babel 8.0.0. Anche Babel 8.0.0-rc è disponibile oggi: provalo subito!
Questa release include il supporto per definire i target di transpilazione in @babel/standalone tramite un attributo data-target sugli elementi <script>. Aggiunge inoltre il supporto per l'API asincrona di @babel/core in @babel/standalone.
Entrambe queste modifiche sono pensate per facilitare la migrazione da Babel 7 a Babel 8.
Puoi leggere l'intero changelog su GitHub. Se stai già utilizzando la beta di Babel 8, tutte le nuove funzionalità della 7.29.0 sono incluse in v8.0.0-rc.1.
Se tu o la tua azienda volete supportare Babel e l'evoluzione di JavaScript ma non sapete come, potete donare sul nostro Open Collective e, ancor meglio, collaborare direttamente con noi all'implementazione di nuove proposte ECMAScript! Essendo un progetto gestito da volontari, contiamo sul supporto della comunità per finanziare i nostri sforzi nell'assistere la vasta gamma di utenti JavaScript. Contattaci a team@babeljs.io per discutere ulteriormente!
Novità principali
Supporto per l'attributo data-targets in @babel/standalone (#17482)
Per impostazione predefinita, @babel/preset-env trasforma il tuo codice fino a ES5. Questo comportamento cambierà in Babel 8, dove per impostazione predefinita utilizzerà la query defaults di Browserslist.
Si consiglia di specificare esplicitamente i tuoi targets, già a partire da Babel 7, in modo che il tuo output non cambi con l'aggiornamento maggiore. Questo nuovo attributo rende possibile farlo quando si utilizza @babel/standalone per trasformare automaticamente i tag <script>:
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script type="text/babel" data-targets="firefox 97, chrome 102">
const getMessage = () => "Hello World";
document.getElementById("output").innerHTML = getMessage();
</script>
Nota che Browserslist non supporta la specifica del "browser corrente" come target: è tua responsabilità scegliere target sufficientemente vecchi da supportare i browser dei tuoi utenti.
Babel 8.0.0-rc.1
Dopo anni di lavoro, Babel 8 è finalmente pronto. Lo rilasciamo come 8.0.0-rc.1, in modo che più utenti possano provarlo e segnalare problemi prima del rilascio finale. Non sono previste ulteriori modifiche, a meno che non siano dovute al feedback degli utenti che provano le ultime pre-release.
Un principio guida per i breaking change introdotti è che l'aggiornamento a Babel 8 dovrebbe essere semplice: la maggior parte era già disponibile in Babel 7 dietro un'opzione, così da poter iniziare ad adattare il codice prima di effettuare effettivamente l'aggiornamento.
Abbiamo preparato ottime risorse per orientarsi nell'aggiornamento da Babel 7 a Babel 8:
-
una guida alla migrazione per sviluppatori che usano l'API di Babel, come gli autori di plugin o i consumatori diretti del nostro AST;
-
il sito con la documentazione di Babel 8, attualmente ospitato su https://next.babeljs.io/ fino al rilascio stabile di Babel 8.
Sono presenti molti breaking change che speriamo non impattino gli utenti, ma di cui siamo incredibilmente entusiasti: un esempio è che Babel 8 sarà distribuito esclusivamente come pacchetto ESM. Abbiamo cercato per molto tempo di capire come realizzarlo, e finalmente con il supporto a require(esm) introdotto in Node.js 20 ci sentiamo tranquilli nel non fornire un'alternativa CommonJS.
Puoi anche leggere l'intero changelog di ogni pre-release di Babel 8 su GitHub.