Nota del traduttore
Questa è la traduzione del file jspm-systemjs.md. Qui c'è il link dove si confrontano le differenze tra commit di riferimento di questa traduzione e l'ultimo commit di AVA sul branch master (Se si clicca sul link, e non si vede il file jspm-systemjs.md
nella lista dei file modificati, questa traduzione è aggiornata).
Traduzioni: Français, Italiano
Per usare AVA con JSPM si richiede l'utilizzo di un loader speciale per far funzionare correttamente l'istruzione import
dei pacchetti JSPM. Lo scopo del loader è quello di permettere di eseguire i test senza pre-compilare il tuo progetto JSPM.
Questa ricetta è stata testata unicamente con JSPM v.0.17.0-beta.22 ma dovrebbe funzionare con ogni versione di JSPM v0.17 e forse anche con le versioni v0.16.
Configura il file .babelrc
per eseguire AVA se non l'hai ancora fatto. Puoi avere configurazioni aggiuntive nei tui file di configurazione JSPM per sovrascrivere queste impostazioni durante la fase di assemblamento (bundling) e compilazione.
{
"presets": ["es2015", "stage-2"]
}
Puoi trovare maggiori informazioni su come configurare Babel con AVA nella ricetta babelrc.
Come prima cosa installa il loader JSPM per AVA come una dipendenza dev.
$ npm install --save-dev ava-jspm-loader
Aggiorna anche la tua configurazione AVA nel package.json
per usare il loader JSPM.
{
"ava": {
"require": [
"babel-register",
"ava-jspm-loader"
]
}
}
NOTA: se usi async
/await
nel tuo codice sorgente (non nei tuoi file di test!) avrai bisogno di installare babel-polyfill
da npm
e aggiungerli al tuo Array di require
.
Per tutti i tuoi file nel progetto avrai bisogno di utilizzare System.import
. Quindi se hai chiamato il tuo progetto app
e vuoi importare il tuo file main.js
in un file di test dovrai importare il file in queto modo import main from 'app/main'
.
import test from 'ava';
import main from 'app/main'; // Maps to your JSPM config for "app/main.js"
import BigNumber from 'bignumber.js'; // In jspm_packages
function fn() {
return Promise.resolve(new BigNumber('1234567890.123456789'));
}
test('example test', async t => {
t.is((await fn()).toString(), '1234567890.123456789');
});