Skip to content
Mithril.js 2
Main Navigation GuidaAPI

Italiano

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Polski
Türkçe
čeština
magyar

Italiano

English
简体中文
繁體中文
Español
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Polski
Türkçe
čeština
magyar

Aspetto

Sidebar Navigation

Per iniziare

Installazione di Mithril.js

Applicazione semplice

Risorse

JSX

ES6+ su browser legacy

Animazioni

Testing

Esempi

Integrazione di terze parti

Gestione dei Percorsi

Concetti chiave

Nodi del DOM virtuale

Componenti

Metodi del Ciclo di Vita

Chiavi

Il sistema di aggiornamento automatico

Varie

Confronto tra i Framework

Migrazione da v1.x

Migrazione da v0.2.x

API

In questa pagina

ES6+ su browser legacy ​

Mithril.js è scritto in ES5, ma è pienamente compatibile con ES6 e versioni successive. Tutti i browser moderni lo supportano nativamente, inclusa la sintassi dei moduli nativi. (Non supportano la risoluzione automatica dei moduli di Node, quindi non puoi usare import * as _ from "lodash-es" o simili. Supportano solo percorsi relativi e URL.) Puoi quindi utilizzare liberamente arrow functions per i tuoi closure components e classi per i tuoi componenti di classe.

Tuttavia, se come molti di noi, hai ancora la necessità di supportare browser meno recenti come Internet Explorer, dovrai convertire il codice a ES5. Questa pagina spiega come farlo usando Babel per rendere il codice ES6+ moderno compatibile con i browser più datati.

Setup ​

Innanzitutto, se non l'hai già fatto, assicurati di avere Node installato. Viene fornito con npm preinstallato, che ci servirà a breve.

Una volta scaricato, apri un terminale ed esegui questi comandi:

bash
# Sostituisci questo con il percorso effettivo del tuo progetto. Racchiudilo tra virgolette se contiene spazi,
# e tra virgolette singole se sei su Linux/Mac e contiene un `$$` da qualche parte.
cd "/path/to/your/project"

# Se hai già un file `package.json`, puoi saltare questo comando.
npm init

Ora, puoi seguire uno dei due percorsi diversi:

  • Usa Babel standalone, senza alcun bundler
  • Usa Babel e un bundler come Webpack

Usare Babel standalone ​

Innanzitutto, dobbiamo installare alcune dipendenze necessarie.

  • @babel/cli installa la logica principale di Babel e il comando babel.
  • @babel/preset-env aiuta Babel a identificare quali conversioni applicare e come farlo.
bash
npm install @babel/cli @babel/preset-env --save-dev

Ora, crea un file .babelrc e configuralo con @babel/preset-env.

json
{
  "presets": ["@babel/preset-env"],
  "sourceMaps": true
}

Infine, se hai requisiti particolarmente specifici riguardo ai browser da supportare, potresti voler configurare Browserslist in modo che Babel (e altre librerie) sappiano quali funzionalità devono essere supportate.

Per impostazione predefinita, se non configuri nulla, Browserslist utilizza un criterio ragionevole: > 0.5%, last 2 versions, Firefox ESR, not dead. A meno che tu non abbia esigenze particolari che richiedano di modificare questo comportamento, come il supporto per IE 8 con molti polyfill, puoi tralasciare questo passaggio.

Ogni volta che vuoi compilare il tuo progetto, esegui questo comando:

bash
babel src --out-dir dist

Potrebbe essere utile usare uno script npm per evitare di doverlo ricordare e digitare ogni volta. Aggiungi un campo "build" all'oggetto "scripts" nel tuo package.json:

json
{
  "scripts": {
    "build": "babel src --out-dir dist"
  }
}

Ora, il comando è più facile da digitare e ricordare.

bash
npm run build

Usare Babel con Webpack ​

Se vuoi usare Webpack per il bundling, sono necessari alcuni passaggi aggiuntivi. Innanzitutto, dobbiamo installare tutte le dipendenze necessarie sia per Babel che per Webpack.

  • webpack è il codice principale di Webpack e webpack-cli ti fornisce il comando webpack.
  • @babel/core è il codice principale di Babel, una dipendenza peer per babel-loader.
  • babel-loader permette a Webpack di usare Babel per transpilare i tuoi file.
  • @babel/preset-env aiuta Babel a identificare quali conversioni applicare e come farlo.
bash
npm install webpack webpack-cli @babel/core babel-loader @babel/preset-env --save-dev

Ora, crea un file .babelrc e configuralo con @babel/preset-env.

json
{
  "presets": ["@babel/preset-env"],
  "sourceMaps": true
}

Successivamente, se hai requisiti particolarmente specifici riguardo ai browser da supportare, potresti voler configurare Browserslist in modo che Babel (e altre librerie) sappiano quali funzionalità devono essere supportate.

Per impostazione predefinita, se non configuri nulla, Browserslist utilizza un criterio ragionevole: > 0.5%, last 2 versions, Firefox ESR, not dead. A meno che tu non abbia esigenze particolari che richiedano di modificare questo comportamento, come il supporto per IE 8 con molti polyfill, puoi tralasciare questo passaggio.

Infine, configura Webpack creando un file chiamato webpack.config.js.

javascript
const path = require('path');

module.exports = {
  entry: path.resolve(__dirname, 'src/index.js'),
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'app.js',
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /\/node_modules\//,
        use: {
          loader: 'babel-loader',
        },
      },
    ],
  },
};

Questa configurazione prevede che il file sorgente principale dell'applicazione sia in src/index.js. Il bundle verrà generato in dist/app.js.

Ora, per eseguire il bundler, esegui semplicemente questo comando:

bash
webpack -d --watch

Potrebbe essere utile usare uno script npm per evitare di doverlo ricordare e digitare ogni volta. Aggiungi un campo "start" all'oggetto "scripts" nel tuo package.json:

json
{
  "scripts": {
    "start": "webpack -d --watch"
  }
}

Ora, il comando è più facile da digitare e ricordare.

bash
npm start

Per le build di produzione, è consigliabile minimizzare i tuoi script. Fortunatamente, basta eseguire Webpack con un'opzione diversa.

bash
webpack -p

Potresti anche voler aggiungere questo ai tuoi script npm, in modo da poterlo compilare rapidamente e facilmente.

json
{
  "scripts": {
    "start": "webpack -d --watch",
    "build": "webpack -p"
  }
}

Sarà quindi più facile ricordare come eseguirlo.

bash
npm run build

Naturalmente, puoi farlo anche negli script di build di produzione automatici. Ecco come potrebbe apparire se stai usando Heroku, ad esempio:

json
{
  "scripts": {
    "start": "webpack -d --watch",
    "build": "webpack -p",
    "heroku-postbuild": "webpack -p"
  }
}
Pager
Pagina precedenteJSX
Pagina successivaAnimazioni

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors

https://mithril.js.org/es6.html

Rilasciato sotto la licenza MIT.

Copyright (c) 2024 Mithril Contributors