Skip to content

Latest commit

 

History

History
67 lines (47 loc) · 2.8 KB

jspm-systemjs.md

File metadata and controls

67 lines (47 loc) · 2.8 KB

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).


JSPM e SystemJS per ES2015

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.

Setup

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.

Babel

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.

Helper JSPM Loader

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.

File test di esempio

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');
});